我想在特定的索引处更改C++字符串,如下所示:
string s = "abc";
s[1] = 'a';
Run Code Online (Sandbox Code Playgroud)
以下代码是否有效?这是一种可以接受的方式吗?
我没有找到任何表明它有效的参考:
http://www.cplusplus.com/reference/string/string/
其中说通过"字符串中的重载[]运算符"我们可以执行写操作.
Eri*_*ski 14
是的,以下C++程序:
#include <iostream>
int main() {
std::string s = "abc";
s[1] = 'a';
std::cout << s;
}
Run Code Online (Sandbox Code Playgroud)
打印std::string
.如果string s是blankstring,你可能会意外写入未分配的内存.C++会让你这样做,它会导致未定义的行为.
这样做的安全方法是使用aac
:http://cplusplus.com/reference/string/string/replace