有什么办法可以改变任何索引的char *值吗?

sit*_*mpa 1 c++ arrays char

据我所知,如果我们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*

Cur*_*ous 5

使用现代C ++方法获取可变的字符串值

std::string str{"sitaram"};
str[2] = 'y';
Run Code Online (Sandbox Code Playgroud)

在C ++中,字符串文字(即包含在中的值"")默认为类型const char[n](其中n+1空字符的字符串文字的长度),由于它们是不可变的,因此任何试图对其进行修改的尝试都将导致未定义的行为

  • _String文字(即用“”括起来的值)默认为const char * _ ... ** nope **类型,它们的类型为[`const char [n]`](http://en.cppreference。 com / w / cpp / language / string_literal),并且仅在需要指针的情况下_decay_到const char *。 (5认同)