3.3.5 索引string对象
string对象存储一个char型值的序列。给对象提供下标运算符([])和索引号就可以访问其中的任意一个char型值。这是接下来将介绍的内容:
- cout << "The character at position 0 is: " << phrase[0] << "\n\n";
序列中第一个元素的位置为0。上面语句中的phrase[0]是字符G。因为计数从0开始,所以虽然string对象中包含12个字符,但是它的最后一个字符是phrase[11]。
陷阱
经常易犯的一个错误就是忘记索引是从0开始的。记住,包含n个字符的string对象的索引是0~n-1。
不仅可以通过下标运算符访问string对象中的字符,还可以对它们重新赋值,如下所示:
- phrase[0] = 'L';
可以将phrase的第一个字符修改为字符L,这样phrase就成了"Lame Over!!!"。
陷阱
当使用string对象和下标运算符时,C++(www.cppentry.com)编译器不执行边界检查。这意味着编译器不检查程序是否试图访问不存在的元素。访问非法的序列元素可能导致灾难性的后果,因为这可能覆盖掉计算机内存中的关键数据。这样可能导致程序崩溃,所以在使用下标运算符访问数据时要小心。