如何反转字符串?C语言从入门到入土(进阶篇)(算法篇p3)
谁都不能阻挡你成为更优秀的人。
废话不多说,解释都在里面哈。
首先是思路(这里只是两个单词,多个一样的哈):
然后是代码:
#include<stdio.h>
#include<string.h>
void reverse_my(char* left, char* right)
{
while (left < right)
{
char tmp = *right;
*right = *left;
*left = tmp;
left++;
right--;
}
}
int main()
{
char arr[100] = { 0 };
gets(arr);
//反转字符串
reverse_my(arr, arr + strlen(arr) - 1);
//反转每个单词
char* start = arr;
//因为不止一个单词 所以要while循环往后走
while (*start)
{
char* end = start;
//中间的一段都是空格分割,最后是字符串结束标志''。
while (*end != ' ' && *end != '')
{
end++;
}
reverse_my(start, end - 1);
//最后判断 不是就往后走 是就 *start == 0 外面的while语句结束循环
if (*end)
{
start = end + 1;
}
else
{
start = end;
}
}
printf("%s", arr);
return 0;
}
因为作者发现算法篇还是一题一题发会让大家知道里面写的是什么会让读者们更清楚自己想不想看,所以之后的算法篇可能就按这样发哈!
最后:感谢你的观看!
感谢你的支持!
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
二维码