B1009. 说反话 (20')

来源:互联网 发布:复杂网络的同步 编辑:程序博客网 时间:2024/06/07 22:43
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。


输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。


输出格式:每个测试用例的输出占一行,输出倒序后的句子。


输入样例:
Hello World Here I Come
输出样例:

Come I Here World Hello

解题思路:

将输入的字符串str根据空格切割成单词存在二维数组里,让数组倒序输出,即可满足要求。


#include <cstdio>#include <cstring>int main() {int cnt = 0;char str[85];gets(str);//获得输入的字符串 int len = strlen(str);//计算字符串的长度 char res[85][85];int j = 0;//切割字符串为单词存入二维数组 for(int i = 0; i < len; i++) {if(str[i] != ' ') {res[cnt][j++] = str[i];} else {res[cnt][j] = '\0';cnt++;j = 0;}} res[cnt][j] = '\0';//给最后一个单词加上结束符 cnt++;//倒序输出单词 for(int i = cnt - 1; i >= 0; i--) {printf("%s", res[i]);if(i > 0) printf(" ");}return 0;} 


0 0