c数组中的分段错误,访问字符串中的单个字符



我试图操作字符串中的单个字符,在这种情况下,将第4个"a"更改为"b"。

string password = "aaaaa";
printf("password: %sn",password);
int j = 'b';
password[3] = (char) j;
printf("password: %sn",password);

返回:

密码:aaaaa

分段故障

最后一点:在第一行中,我像声明变量一样声明"string"。这个发明是CS50图书馆允许的——它应该有效,我过去也用过。

提前谢谢。

"aaaaa";字符串文字,它在大多数系统上是不可变的,因此password[3] = (char) j;尝试修改不可变对象,导致SegFault。

相反,

char password[] = "aaaaa";

假设您的"string"char*typedef,使用复合文字可以得到相同的结果,例如:

string password = (char[]){"aaaaa"};

相关内容

  • 没有找到相关文章

最新更新