一、 题目

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:
测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。输出格式:
每个测试用例的输出占一行,输出倒序后的句子。输入样例:
Hello World Here I Come
输出样例:
Come I Here World Hello

二、代码

  • 核心函数
  1. 未使用的getline(cin, str2); 此函数直接读入输入的一行到str2字符数组中,包含换行符、空格!!注意使用的是char数组,不是string(也就是说ACM中直接读入一行未知何时结束的数据的时候,这种方法可以奏效;读入一行后自动运行下面的代码)
  2. getchar: 读入一个字符,包含换行符,空格。
  3. 上面的两个关键方法就是来解决 输入不知道何时终结的字符的方法!!!!!
  • 分析
    1) 我原来想法: 我原来打算使用string数组来做,结果发现无法判断何时结束输入,’\n’只是字符,string压根不识别!!
    2) 本题采用了定义数组来记录空格的方法求解。 空格与空格之间的间隙就是每个单词。
    3)因为要满足每个单词前后都有空格,所以第一个单词的前面和最后一个单词的后面都要加一个空格,这样所有单词的处理就会一致。 for(i=strSign[k-1]+1; i<strSign[k]; i++) 。 从前一个空格下一个开始读,到下一个空格的前一个结束。。

  • 易错点
    1) 注意在第一个单词前面和最后一个单词的后面都要添加空格
    2)不要忘记,最后输入没有空格

#include <iostream>
#include <stdio.h>
using namespace std;int main() {char str[200];char strSign[100] = {0};strSign[0] = -1;//string str2;int i=0, j=1, k;//getline(cin, str2);      //geline读入一行数据,而且读入的是字符串string,不是char 不包含换行符!!!! char c;while(1) {c = getchar();if(c == '\n') {break;}if(c == ' ') {strSign[j] = i;j++;}str[i] = c;i++;//cout<<c;}str[i] = ' ';strSign[j] = i;for(k=j; k>=1; k--) {for(i=strSign[k-1]+1; i<strSign[k]; i++) {cout<<str[i];}if(k != 1) {cout<<" ";}}return 0;
}

后补第二种方法!!!

  • 核心函数
  1. 用的char的二维数组!!! 二维数组的行数、列数只要大于就行!!!
  2. 因为题目的例子是一段字符串!!在测试的时候,系统自己会自动中断输入!
    cin是以空格为分隔符的!!将几个字符串分开
  3. 在自己测试的时候,要用crtl + Z 中断输入!!!
#include <iostream>
using namespace std;int main() {char str[20][80];int i=0;while(cin>>str[i]) {i++;}for(int j=i-1; j>=0; j--) {if(j!=i-1) cout<<" ";cout<<str[j];    }return 0;
}

PAT乙类1009 说反话 (20 分)相关推荐

  1. PAT(乙级) 1009 说反话 (20 分)(Python 3实现)

    给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母(大小 ...

  2. C++学习之路 | PTA乙级—— 1009 说反话 (20分)(精简)

    1009 说反话 (20分) 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串.字符串由若干单词和若干空格组 ...

  3. 1009 说反话 (20分)

    @[TOC](1009 说反话 (20分)) 1009 说反话 (20分) 利用 vector<string 来存储多个数据 总觉得哪里有问题... 空格似乎也会正常存储(这点不是很明白,旺评论 ...

  4. 【PAT乙级】1009 说反话 (20 分)

    https://pintia.cn/problem-sets/994805260223102976/problems/994805314941992960 朴素写法: #include<stdi ...

  5. 满分简便代码:1009 说反话 (20分)

    立志用更少的代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出 ...

  6. 1009 说反话 (20 分)(c语言)

    给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母(大小 ...

  7. PAT乙类1013 数素数 (20 分)

    一.题目 令 P​i表示第 i 个素数.现任给两个正整数 M≤N≤10^4,请输出 PM到 PN的所有素数.输入格式: 输入在一行中给出 M 和 N,其间以空格分隔.输出格式: 输出从 P​M到 P​ ...

  8. PAT 乙级 1009. 说反话 (20) Java版

    给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区 ...

  9. 1009 说反话 (20分)快速易理解C++版

    给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母(大小 ...

最新文章

  1. oracle张大鹏,Oracle数据库性能优化
  2. 关于SAP Spartacus的Action - LoadCmsPageData
  3. 如何测试web服务器性能,如何执行Web服务器性能基准测试?
  4. Spring MVC 使用优化建议
  5. web.xml配置简介
  6. 从零实现深度学习框架——理解正则化(一)
  7. C#网络编程(Socket编程)
  8. 正态分布某一点的概率怎么算_正态分布的抽卡概率算法
  9. c语言逻辑运算符组合,C语言的逻辑运算符
  10. 人工智能史上的二次低谷——第一次低谷
  11. ikuai路由管理系统教程
  12. 戴尔笔记本修改硬盘模式为AHCI再安装ubuntu
  13. LeetCode 176 第二高的薪水
  14. python 表示2的n次方
  15. 诺基亚Lumia 920更新后出现屏幕亮度自动调节问题?
  16. Hadamard production
  17. “yield”关键字有什么作用?
  18. 16个掘金量化社区的热门话题送给各位Quant的量化交易干货
  19. 双向链表 - DoubleLinkedList
  20. Fedora 21 安装 Budgie Desktop

热门文章

  1. 关于MapReduce中自定义Combine类(一)
  2. [Leetcode]@python 107. Binary Tree Level Order Traversal II
  3. POJ 3041 Asteroids (对偶性,二分图匹配)
  4. .net String.Format数字格式化输出
  5. hihocoder1089 Floyd算法
  6. 简单的C语言程序合集-2
  7. Linux C语言实现ls -l
  8. nyoj187 快速查找素数
  9. linux终端贪吃蛇,分享|nSnake: 在Linux的终端上玩经典的贪食蛇游戏
  10. mysql 用户管理表_Mysql—用户表详解(mysql.user)