
伪代码:
1.读入数据;
2.用记下空格的位置;
3.用循环(这里的count用起来好像指针hhh)来完成对应的输出;
#include <stdio.h>
int main(){
char a[100000],b[100000];
int i=0,count=0;
while((a[i]=getchar())!='\n'){
if(a[i]==' ')
b[count++]=i;
i++;
}
for(i=b[--count]+1;count>=0;i=b[--count]+1){
while(a[i]!=' '&&a[i]!='\n'){
printf("%c",a[i]);
i++;
}
putchar(' ');
}
for(i=0;a[i]!=' '&&a[i]!='\0';i++)
printf("%c",a[i]);
return 0;
}
第一次输入的时候就不用for循环了,这里while循环更加简洁有力(未知循环次数);
第一个for循环那里,注意是--count;
而且初始化的时候不写"i=b[count-1]+1"而是写"i=b[--count]+1",这是因为前者初始化后count的知并没有改变,相当于第一个count被用了两次,打印出两个的"Come";而后者就避免了这个问题。
该博客介绍了一个C语言程序,用于读取输入的字符串,并记录空格位置。程序使用while循环读取字符,遇到空格时记录其位置。之后,通过倒序遍历空格位置,输出从最后一个空格到字符串末尾的部分,再输出从第一个空格到倒数第二个空格的内容,最后输出字符串开头到第一个空格的部分。此程序巧妙地实现了字符串的重新排列。
2150

被折叠的 条评论
为什么被折叠?



