1. string的初始化
//1. string 的初始化方式
string s1; //默认构造函数,初始化为空串""
string s2(s1); //将s2初始化为s1的副本
string s3("value"); //初始化为字面值副本、
string s4(5,'c'); //初始化为字符'c'的n个副本
由于历史原因及为了与C语言兼容,string类型与字符字面值时不同类型。
2. string 对象的读写
string s;
cin>>s;
(1). 读取并忽略开头所有空白字符(空格、换行符、制表符)。
(2). 读取直到再次遇到空白字符,读取终止。
读取操作将返回做操作数,这意味着可进行级联操作。
2.1 读入未知数目大的string
while (cin>>s)
cout<<s<<endl;
将输入流的有效性作为判断条件,即是否到达文件末尾且是否有效输入。
2.2 用getlint 读取整行文本
getline函数的两个参数,(输入流对象,string对象),从输入流中读取去一行,保存到string对象中,次string对象不包含换行符。
getline并不忽略开头换行符,如遇到换行符,将作为一次有效输入,返回空串到string对象。
注:getline函数返回将丢弃换行符。
3. string 的操作
3.1 长度
if(s.empty() == false)
{
string::size_type length = s.size();
cout<<"size = "<<length<<endl;
}
size操作返回的是string::size_type类型,与机器无关,unsigned的保证足够大能存储任意string的长度。
最佳实践:不要把size的返回值赋给一个int变量。