思路:可以先全部倒过来:anihc evol i,然后再把每个单词倒过来
#include <stdio.h>
#include <string.h>
int main(int argc, char const *argv[])
{
char a[32] = "I love China";
char *p = a;
char *q = p + strlen(a) - 1;
char *k = NULL;
char t;
while (p < q)
{
t = *p;
*p = *q;
*q = t;
p++;
q--;
}
printf("%s\n", a); //全部反转
p = q = a;
while (*p)
{
while (*p == ' ')
p++;
q = p;
while (*q != ' ' && *q != '\0')
q++;
k = q; //暂存空格地址
q--; //指向单词结尾
while (p < q)
{
t = *p;
*p = *q;
*q = t;
p++;
q--;
}
p=k;
}
printf("%s\n",a);
return 0;
}
运行结果: