string的操作:
os<<s | 将s写道输出流os当中,返回os |
is>>s | 从is中读取字符串赋给s,字符串以空白分割,返回is |
getline(is,s) | 从is中读取一行赋给s,返回is |
s.empty() | s为空返回为真, |
s.size() | 返回s中的字符个数 |
s1+s2 |
返回s1和s2相连接后的字符 |
s1=s2 | 用s2的副本代替s1中原来的字符 |
s1==s2 | 判断s1和s2是否相等 |
s1!=s2 | 等性判断对大小写十分敏感 |
<,>.<=,>= | 利用字符在字典中的顺序进行比较且对字母的大小写很敏感 |
string::size_type:
对于size函数来说,返回一个int或者一个unsigned类型似乎都是合理的。但其实size函数返回的就是一个string::size_type类型的值。
注意:如果一个表达式中已经有了size()函数,就不要在使用int了这样可避免混用int和unsigned可能带来的问题。
注意:为了与c语言兼通,所以c++中的字符串字面值并不是标准库类型string对象。切忌,字符串字面值与string是不同类型。
处理string对象中的字符:
C++标准库中除了定义C++语言的功能之外,也兼容了C语言的标准库。C语言的头文件形如:name.h,C++则将这些命名为Cname。因此cctype和ctype.h头文件的内容是一样的,只不过从命名规范上来讲更符合C++语言的要求。
使用基于范围的for语句:
遍历给定序列中的每个元素并对序列中的每个值执行那个某种操作
1
2
|
for (declaration:expression) statement |
其中expression部分是一个对象,用于表示一个序列。declaration部分负责定义一个变量,该变量将被用于访问序列中的基础元素。每次迭代,declaration部分的变量都会被初始化为expression部分的下一个元素值。
使用for语句来改变字符串中的字符:
如果想改变string对象中的值必须把循环碧昂量定义成引用类型。引用只是给对象的一个别名因此当使用引用作为循环控制变量时 这个变量实际上被依次绑定到了序列的每个元素上。使用这个引用我们就能改变他绑定的字符。
只处理一部分字符:
若是要处理string对象中的每一部分字符,使用for是一个比较好的选择。但是我们若是只访问其中的一个字符,或者访问多个字符但是到某个条件就要停下来。要实现有两种办法:(1)使用下标(2)迭代器
下标运算符:接受的输入参数是:string::size_type类型的值。string对象是从0开始记的。
string类型的下标必须大于0小于s.size()。