杭电ACM 1062: Text Reverse

来源:互联网 发布:天互数据备案 编辑:程序博客网 时间:2024/06/08 20:09

出处http://blog.csdn.net/always2015/article/details/45364713

这里写图片描述

这一道题不是很难,主要在于注意字符串的存取方式就成功了一大半,再者就是如何读取单个单词然后反向输出这也是关键。在输入字符串的时候我用到了getline()函数,这个函数的参数是一个输入和一个string对象,函数从给定的输入流中读入内容知道遇到换行符为止(注意换行符也被读进来了),然后把所有的内容都读入到那个string对象里面去(注意不存换行符),getline()只要遇到换行符就结束读取操作并返回结果,哪怕一开始就输入的是换行符也是如此。如果一开始输入的是换行符吗,那么所得的结果就是一个空串string。我的AC代码如下:

#include <iostream>#include<string>#include <stdio.h>using namespace std;int main(void){    int t,length,count=0;    string input_str;    cin>>t;    //将换行符读取,否则会出错    getchar();    for(int i=0; i<t; i++)    {        //将输入的字符串存储到string 里        getline(cin,input_str);        //获取字符串的长度        length=input_str.size();        //在字符串最后加一个空字符,在后面做结尾判断        input_str[length]=' ';        //遍历整个字符串        for(int j=0; j<=length; j++)        {            //统计字符串里面每个英文单词的长度            if(input_str[j]!=' ')            {                ++count;            }            else            {                //反向输出每个英文单词                for(int k=j-1; k>=j-count; k--)                {                    cout<<input_str[k];                }                //注意:在最后一个单词输出结束之后,后面不加空格                if(j!=length)                    cout<<" ";                count=0;            }        }        //输出完后换行        cout<<endl;    }    return 0;}

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 115网盘配额0怎么办 问道技能学错了怎么办 3岁宝宝反复感冒怎么办 宝宝8个月流鼻涕怎么办 玄凤鹦鹉下蛋了怎么办 被冤家报复了该怎么办 现在13岁不上学怎么办 孩子高二了厌学怎么办 饿了怎么办by肉丁豆角 味精吃多了很渴怎么办 婴儿o型血黄疸高怎么办 老婆怀孕期间老公出轨怎么办 小孩又瘦又矮怎么办 8个月婴儿太瘦怎么办 太瘦了怎么办80多斤 led吊扇灯坏了怎么办 妹子内裤被看了怎么办 都已婚却相爱了怎么办 喝了很烫的水怎么办 金毛幼犬不吃狗粮怎么办 4孩子受凉了呕吐怎么办 尿多是什么原因造成的怎么办 5岁宝宝老尿床怎么办 五岁了还尿床怎么办 2岁宝宝晚上尿床怎么办 胃疼腹泻稀水怎么办 网购成瘾怎么办 知乎 军人被警察打了怎么办 对高院再审不服怎么办 对高院判决不服怎么办 白色砂锅烧黑了怎么办 手机被偷关机了怎么办 狗被眼镜蛇咬了怎么办 穿高跟鞋脚趾头长茧怎么办 穿皮鞋脚底板疼怎么办 鞋子穿了脚趾痛怎么办 脚被鞋子磨肿了怎么办 脚趾磨出茧子怎么办疼 脚掌长茧走路疼怎么办 脚底磨出茧子疼怎么办 手指上写字有茧怎么办