据我所知,如果我们在程序中声明char*
,那么它会从只读区域分配内存,因此我们无法更改任何char
数组中的位置。
char *ch = "sitaram";
ch[2] = 'y';
上面的代码将无法正常运行,因为我们正在更改只读内存。
一种方法是我们可以将我们的 char
数组声明为
char ch[] = "sitaram";
然后我们可以更改索引处的值。
有什么方法可以更改 char*
中任何索引处的 char
值?
最佳答案
对可变字符串值使用现代 C++ 方法
std::string str{"sitaram"};
str[2] = 'y';
字符串文字(即包含在 ""
中的值)默认为 const char[n]
类型(其中 n
是长度字符串文字 +1
的空字符)在 C++ 中并且由于它们是不可变的,任何修改它们的尝试都会导致 undefined behavior .
关于c++ - 有没有办法改变任何索引处的 char* 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44911676/