P81 string s7= "hello" + ", " +s2;//错误:不能把字面值直接相加。
解释:string相加必须要包含一个string类型,它的内部运算规则是 string s7 = ("hello" + ", " ) + s2;虽然s2是string类型,但是hello和,它们直接相加了,如果把s2放到前头,后边加多少个字符都无所谓,因为已经包含string类型了
练习3.2
#include <iostream>
#include <string>
//using namespace std;//刚开始不建议直接使用 using namespace std;
uisng std::string
void main()
{
string mystring;
while (getline(std::cin , mystring))
{
std::cout<<mystring<<std::endl;
}
}
练习 3.3
#include <iostream>
#include <string>
uisng std::string
void main()
{
string mystring;
while (std::cin , mystring)
{
std::cout<<mystring<<std::endl;
}
}
练习3.4
对于string类的输入函数,它会自动忽略开头的空白(空格、制表符、换行等等),从第一个真正的字符开始直到下一个空白。
对于getline()函数,它会保存字符串中的空白符,它读入数据,直到遇到换行符位置。
练习3.5
#include <iostream>
#include <string>
uisng std::string
void main()
{
string mystring1,mystring2,mystring3;//这里就输入3个好了
std::cin>>mystring1>>mystring2>>mystring3;
string str=mystring1+mystring2+mystring3;
std::cout<<str<<std::endl;
}