第一种方法:
用指针像交换两个数一样,创建一个临时变量,从而实现字符串的逆置!
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;
}
还可以用循环的方法输入字符串,具体怎么实现交给大家自己摸索了吧!