今天在做题时遇到这样一个问题:
给定一个字符串“I love china”,编写程序完成以单词为单位的逆序,如“china love i”,并要求不允许使用第三方变量保存数据,但可以使用辅助指针变量等。
#include <stdio.h>
void huan(char *p,char *q)
{
for(;p<q;)
{
char a = *p;
*p = *q;
*q = a;
p++;
q--;
}
}
int main()
{
char a[] = "I love china";
char *p,*q;
p = a;
q = a;
for(;*q != '\0';q++);
q--;
huan(p,q);
puts(a);
q--;
q--;
for(;*p != ' ';p++);
p++;
huan(p,q);
puts(a);
p = a;
for(;*q != ' ';q--);
q--;
huan(p,q);
puts(a);
}
运行结果: