题解 | #字符串反转#
字符串反转
https://www.nowcoder.com/practice/e45e078701ab4e4cb49393ae30f1bb04
描述
接受一个只包含小写字母的字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)
输入描述:
输入一行,为一个只包含小写字母的字符串。
输出描述:
输出该字符串反转后的字符串。
示例1
输入:
abcd
输出:
dcba
#include<stdio.h> #include<string.h> //以下是Senky的代码 int main() { char a[1000]; gets(a); int len = strlen(a); for (int i = 0; i < len; i++) { printf("%c", a[len - 1 - i]); } return 0; }解法二:
#include<stdio.h> #include<string.h> //以下是Senky的代码: void reverse_string(char* str) { int left = 0;//指向字符串头 int right = strlen(str) - 1;//指向字符串尾 //字符串有奇数个字符则字符串中间的字符不用换 //字符串有偶数个字符交换完后left>right while (left < right) { char tmp = str[left];//交换两个字符串的内容 str[left] = str[right]; str[right] = tmp; left++; right--; } } int main() { char a[1000] ; gets(a);//手动输入一个字符串 reverse_string(a);//逆序 printf("%s", a);//输出 return 0;//编辑于2022/09/25 }图解:
总结:
①新增解法二;
②解法一是直接输出,而数组未反转,解法二是反转数组再输出数组;
③当前帖子仅供自我精进、学习使用,有不足之处欢迎指正。
华为-HJ 文章被收录于专栏
机试的题解