题目
将一句话的单词进行倒置,标点不倒置。
比如
I like beijing.
经过函数后变为:
beijing. like I
代码实现
#include<stdio.h>
#include<string.h>
void reserve(char* l, char* r)
{
while (r > l)
{
char tmp = *r;
*r = *l;
*l = tmp;
r--;
l++;
}
}
int main()
{
char arr[100] = { 0 };
//输入字符串
gets(arr);
//先整体倒置
int len = strlen(arr);
char* left = arr;
char* right = arr + len - 1;
reserve(left, right);
//部分倒置
char* start = arr;
char* cur = arr;
while (*cur!='\0')
{
while (*cur != '\0'&& *cur!=' ')
{
cur++;
}
reserve(start, cur - 1);
start = cur + 1;
cur++;
}
puts(arr);
return 0;
}
重点知识解读
scanf不识别空格,导致输出不完整
改进
1利用gets函数,进行输入
2对scanf进行加工
运行
总结
如有错误,恳请指正