描述
输入一个句子(一行),将句子中的每一个单词翻转后输出。
输入
只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。
输出
翻转每一个单词后的字符串,单词之间的空格需与原文一致。
样例输入
hello world
样例输出
olleh dlrow
最开始我的两个if语句为while循环,但在内部循环改变外部循环变量一般会出现混乱(内层循环与外层循环交替改变变量i的值...)。
学会用j>=0和j=-1防止重复进入循环。
#include<stdio.h>
#include<string.h>
char a[502]={0},b[502]={0}; //b为缓存数组(一个单词)
int main()
{
gets(a);
int i,j=-1,len=strlen(a);
for(i=0;i<len;i++){
if(a[i]==' '){
for(;j>=0;j--) /***已遍历过一个单词,j的值就会留下***/
printf("%c",b[j]);
j=-1; //为了跳出循环(j>=0)防止遇多个空格重复输出
printf(" ");
}
if(a[i]!=' '){
j++; /*若为第一次或遇空格则j=0,则b中单词为覆盖存储*/
b[j]=a[i];
}
}
for(;j>=0;j--) /**最后一个单词“后”没有空格**/
printf("%c",b[j]); /***单独输出***/
return 0;
}