PAT乙级真题练习——1009 说反话 (20 分)
1.思路 因为scanf()碰到空格默认当前字符串结束,因此用gets()读取输入的字符串,将读取的字符串存入一个一维数组中,从字符串末尾往前循环,碰到空格就输出从空格的下一个下标开始到单词末尾,因为字符串前没有空格,因此第一个单词额外输出。 2.代码
#include <stdio.h>
#include <string.h>
int main(){
char array[90];
int len;
int i,j,k;
//读取字符串
gets(array);
//获取字符串长度
len = strlen(array);
//定位每个单词的末尾,便于输出单词
k = len-1;
for(i=len-1;i>=0;i--){
//从后往前循环直至碰见空格,输出空格后的单词
if(array[i] == ){
for(j=i+1;j<=k;j++){
printf("%c",array[j]);
}
printf(" ");
//定位前一个单词的末尾
k = i-1;
}
//字符串第一个单词前没有空格,要单独输出
if(i==0){
for(j=i;j<=k;j++){
printf("%c",array[j]);
}
}
}
return 0;
}
下一篇:
借助于栈结构将一个单链表逆置
