• B1009说反话


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

    输入格式:

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

    输出格式:

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

    输入样例:

    Hello World Here I Come
    
     

    输出样例:

    Come I Here World Hello

    思路:

    利用reverse()进行反转,然后遍历字符串str,遇到空格之后再次进行反转,使用pos记录开始的位置;最后一个单词由于没有空格所以单独处理。

     问题:

    输入字符串不完整

    解决:

    cin>>str; 改为 getline(cin,str);前者遇到空格结束输入,后者遇到回车结输入。

     

     1 #include <iostream>
     2 #include <string>
     3 #include <algorithm>
     4 using namespace std;
     5 int main() {
     6     string str;
     7     getline(cin, str);//在输入回车时结束
     8     reverse(str.begin(),str.end());//对容器或者string类型进行反转
     9     int pos = 0;
    10     for (int i = 0; i < str.length(); i++) {
    11         if (str[i] == ' ') {
    12             reverse(str.begin() + pos, str.begin() + i);
    13             pos = i + 1;
    14         }    
    15     }
    16     //对最后一个单词单独处理
    17     reverse(str.begin() + pos, str.end());
    18     cout << str;
    19 }

     

     

    作者:PennyXia
             
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    Windows2003服务器IIS启用Gzip压缩
    使用CDN加速后网站不能使用HttpWebRequest提交数据
    隐藏其它数据库,只让用户能够看到自己拥有权限的数据库
    磁盘阵列的基本概念
    前端构建相关
    一个日志记录类
    手把手教你做个splash(屏幕启动)
    调试问题及解决方案集锦
    c#
    。net中各大编程网址
  • 原文地址:https://www.cnblogs.com/PennyXia/p/12296092.html
Copyright © 2020-2023  润新知