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; }
下一篇:
借助于栈结构将一个单链表逆置