据我所知,如果我们char*在程序中声明,那么它会从只读区域提供内存,因此我们无法char在数组的任何位置更改a 。
char *ch = "sitaram";
ch[2] = 'y';
Run Code Online (Sandbox Code Playgroud)
由于我们正在更改只读内存,因此上述代码无法正常运行。
一种方法是我们可以将char数组声明为
char ch[] = "sitaram";
Run Code Online (Sandbox Code Playgroud)
然后我们可以更改索引的值。
有什么方法可以更改a char中任何索引的值char*?
使用现代C ++方法获取可变的字符串值
std::string str{"sitaram"};
str[2] = 'y';
Run Code Online (Sandbox Code Playgroud)
在C ++中,字符串文字(即包含在中的值"")默认为类型const char[n](其中n为+1空字符的字符串文字的长度),由于它们是不可变的,因此任何试图对其进行修改的尝试都将导致未定义的行为。