用C语言实现字符串的逆置

2023-12-13 04:02:54

?第一种方法:

????????用指针像交换两个数一样,创建一个临时变量,从而实现字符串的逆置!

void Reverse(char* str)
{
    char* left = str;//指向字符串数组的左指针
    char* right = str + strlen(str) - 1;//指向字符串数组的右指针,因为数组下标是从0开始的,因此要减一
    while (left < right)//两个指针分别从两头开始遍历,只要当右指针小于左指针后,说明已经遍历完了
    {
        char temp = *left;//跟交换两个数一样,创建一个临时变量用来存放字符
        *left = *right;
        *right = temp;
        ++left;//左指针往后移
        --right;//右指针往前移
    }
}
#include<stdio.h>
int main()
{
    char str[100] = { 0 };//这里我们创建了一个字符串数组
    while (gets(str))
    {
        Reverse(str);
        printf("%s\n", str);
    }
    return 0;
}

第二种方法:

? ? ? ? 直接将字符串数组里的内容倒叙输出就行

#include<stdio.h>
int main()
{
    char str[100];
    gets(str);
    for (int i = strlen(str) - 1; i >= 0; i--)
    {
        printf("%c", str[i]);
    }
}

当然上面这种方法用了一个内置函数gets(),那么下面用一种没的的形式展现出来:

#include <stdio.h>
#include <string.h>
int main() 
{
    char arr[100];
    scanf("%s", arr);
    printf("%d\n",len);
    for (int i = len - 1; i >= 0; i--) //因为数组下标是从0开始的
    {
        printf("%c", arr[i]);
    }
    printf("\n");
    return 0;
}

还可以用循环的方法输入字符串,具体怎么实现交给大家自己摸索了吧!

文章来源:https://blog.csdn.net/2301_80002696/article/details/134955964
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。