gpt4 book ai didi

c - 在 0 终止后打印 C 字符串

转载 作者:太空宇宙 更新时间:2023-11-04 07:03:54 25 4
gpt4 key购买 nike

int main(void) {
// your code goes here
char* qwe = "qwe";
qwe[2] = '\0';
printf("%s\n", qwe);
return 0;
}

我一直在弄乱 C 指针,看看我是否理解正确。从代码中,qwe 包含指向的 char 指针字母 'q',并且可以到达 'w'、'e''\0'qwe[2] = *(qwe + 2),即e。我用 '\0' 终止了它。现在,当我尝试打印它时,它给我一个段错误。我期待输出 qw

最佳答案

您遇到段错误不是因为打印,而是因为您尝试将字符串文字 写入内存。如果您将副本复制到可写内存中,您的代码将起作用:

int main(void) {
char qwe[] = "qwe";
// ^^^^^
qwe[2] = '\0';
printf("%s\n", qwe); // prints "qw"
return 0;
}

关于c - 在 0 终止后打印 C 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34971877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com