我是一名C++初学者,目前正在学习字符串。
我的问题是,为什么在编译下面提供的代码时,使用索引表示法可以获取字符串的字符,但无法使用cout
获取字符串本身?
代码如下:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string original; // original message
string altered; // message with letter-shift
original = "abc";
cout << "Original : " << original << endl; // display the original message
for(int i = 0; i<original.size(); i++)
altered[i] = original[i] + 5;
// display altered message
cout << altered[0] << " " << altered[1] << " " << altered[2] << endl;
cout << "altered : " << altered << endl;
return 0;
}
当我运行此代码时,字符串
altered
中的字符将正确显示,使用以下代码行:cout << altered[0] << " " << altered[1] << " " << altered[2] << endl;
但是这行代码本身不会显示字符串:
cout << "altered : " << altered << endl;
我想知道为什么会发生这种情况。