我尝试了以下代码,但它没有用.
string tempStr;
tempStr[0] = 'a';
tempStr[1] = 'b';
tempStr[2] = 'c';
cout << "TempStr: " << tempStr << endl;
Run Code Online (Sandbox Code Playgroud)
输出给出一个空字符串.是因为,C++无法知道我的字符串结束的位置.所以它认为我的字符串是在声明中找到的0长度.
如果我尝试以下操作,我会输出"abc".
string tempStr = "xyz";
tempStr[0] = 'a';
tempStr[1] = 'b';
tempStr[2] = 'c';
cout << "TempStr: " << tempStr << endl;
Run Code Online (Sandbox Code Playgroud)
如何克服第一个代码中出现的问题?我应该使用字符或其他东西吗?
你附加字符.字符串不是神奇地为你分配内存的东西,所以如果你不正确地索引它,那就是未定义的行为.
是的,字符串跟踪其长度,并且最后不依赖于nuls.
string a = "abc";
a += '1';
Run Code Online (Sandbox Code Playgroud)