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;程序我就不写了,有兴趣的可以试试
}