c++ 学习之路 第三天 作业理解

来源:互联网 发布:极乐净土动作镜头数据 编辑:程序博客网 时间:2024/06/09 23:11

work_01:
定义string类型对象sum,buf;把输入的一整行数据保存到buf,把输入的所有行数据保存到sum,如果buf是空行,退出循环并打印

sum;

work_02:
从键盘输入一行字符串,然后保存到string s里面,然后判断该字符串里有多少个单词(注意:单词是以空格作为分隔符的,可以

有多个空格);

work_03:
在work_02的基础上,实现一个字符串中的单词顺序逆序;
例如输入 s=”this is a pig”;
逆序后是 s=”pig a is this”;

1:

#include<stdio.h>#include<iostream>using namespace std;int main(){    string sum="",buf;    while(1)    {        getline(cin,buf);        sum +=buf;        if(buf.length()==0)            break;    }    cout<<"sum="<<sum<<endl;    return 0;}

2:

#include <iostream>using namespace std;int main(){    string s="this is a pig";    getline(cin,s);    int count=0;    int left,right;    //1,init variable ,left=right=0;    left=0,right=0;//  cout<<left<<" "<<right<<endl;    //2,enter cycle,if(condition)deal    while(1)    {    //3,do body        //3.1 right = find(" ",right);        right = s.find(" ",right);        //3.2 if(right == npos)        if(right == string::npos){        //3.3 end            break;        }else{        //3.4 left = ++right;continue            if(right - left >0){                count++;            }            left = ++right;        }    }    //4,left < length();else    if(left < s.length())        count++;    //5,print string    cout<<"count = "<<count<<endl;    return 0;}

3.

#include <iostream>using namespace std;int main(){    string s="this is a pig";    string s1=s;for(int i=0;i<s.length();i++)    {        s1[s.length()-1-i]=s[i];    }    cout<< s1 <<endl;    //有人说要是其中有中文怎么办     //其中大部分的中文在utf8中都占3个字节,即第一个字节以1110开头那一类。    //每隔三个,当我们读取的倒数第三个不是0xfe就可以保存第三个,如果是就保存    //三个,按顺序保存。就可以保存完整的汉子 同时I+3;程序我就不写了,有兴趣的可以试试}
0 0
原创粉丝点击