给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。

输入格式:

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

输出格式:

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

输入样例:

  1. Hello World Here I Come

输出样例:

  1. Come I Here World Hello

代码

  1. #include<cstdio>
  2. #include<cstring>
  3. int main() {
  4. char str[81];
  5. scanf("%[^\n]s", str); /* 用 扫描集 的方法读入一整行string */
  6. int length = strlen(str);
  7. int row = 0, col = 0;
  8. /** 把单词拆分到word二维数组 */
  9. char word[81][81];
  10. for(int i = 0; i < length; i++) {
  11. if(str[i] == ' ') {
  12. word[row][col] = '\0'; /* 遇到空格,单词结束 */
  13. row++; /* word指向下一行,即扫描下一个单词 */
  14. col = 0; /* 从新的一行的第0列开始 */
  15. }
  16. else {
  17. word[row][col] = str[i];
  18. col++;
  19. }
  20. }
  21. /** 倒序输出word数组 */
  22. for(int i = row; i >= 0; i--) {
  23. printf("%s", word[i]);
  24. if(i != 0) {
  25. printf(" ");
  26. }
  27. }
  28. return 0;
  29. }