(1)string:size_type操作
string的size()操作返回的是string::size_type类型的值,特别注意,不要将size的返回值赋给一个int变量。因为string::size_type是unsigned类型,所表示的最大整数值比对应的signed型要大一倍。即size_type存储的string长度是int所能存储的两倍。在16位int型机器上,int类型变量最大只能表示32767个字符的string对象,而能容纳一个文件内容的string对象轻易就会超过这个数字。所以,保存一个string对象size的最安全的方法就是使用标准库类型string::size_type.
(2)和字符串字面值的连接
当string对象和字符串字面值混合连接操作时,“+” 操作符的左右操作数必须至少有一个是string类型的。
string s1 = "hello" ;
string s2 = ''world" ;
string s3 = s1 + "," ; //OK
string s4 = "hello" + "," ; //error: no string operand
string s5 = s1 + "," + "world" ; //OK:each + has string operand
string s6 = "hello" + "," + s2 ; //error: cant' find add string literals
例:通过以下循环将str对象的每一个字符置为'*':
for (string::size_type ix =0; ix != str.size(); ++ ix) str[ix] = '*';