头文件 #include<string>
命名空间:std
初始化:需要注意的是 string s(10,‘c’);//s是由10个c组成的串。 string(10)是错误的,这和vector有点区别;
string对象上的操作
读写
os<<s
is>>s
getline(is,s)
这里要注意的是缓冲的存在,还要注意的是>>读之后,换行符还在缓冲区。getline读一行后,换行符被丢弃。
string.empty()
string.size()
这里要注意的是string.size() 的返回值类型。为了体现标准库类型与机器无关的特性,string类定义了一个其配套的类型 string::size_type。虽然不知道它的细节,但是确定的是它是一个无符号类型的值。这时候auto和decltype有了用武之地。例如
auto len =line.size();
两个string对象的相加 s1+s2
string和字面值相加s1+="123"注意 s1=“s”+“b”+s2是错误的。
==,!=,<,<=,>,>=
处理string对象中的字符
这个时候用到一个c的库函数
#include<cctype>
c++11提出一种新的语句:范围for语句。
for(declaration:expression)
statement
例如string str(“something”);
for (auto c :str)
cout<<c<<endl;
用下标访问字符串中的字符。s[n]