问题:输入 i like Changsha.
输出 Changsha like i
#include <stdio.h>
#include <assert.h>
void reverse(char* l, char* r)
{
assert(l && r);
while (r > l)
{
char temp = *l;
*l = *r;
*r = temp;
l++;
r--;
}
}
int main()
{
char str[100] = { 0 };
//输入
gets(str);
int len = strlen(str);
char* left = str;
char* right = str + len - 1;
//逆序整个字符串
reverse(left, right);
//逆序每个单词
char* cur = str;
char* start = str;
while (*cur != '\0')
{
while (*cur != ' ' && *cur != '\0')
{
cur++;
}
reverse(start, cur - 1);
start = cur + 1;
if(*cur != '\0')
cur++;
}
printf("%s\n", str);
return 0;
}
代码运行