c - 使用null终止符覆盖换行符转义字符会导致段错误

时间:2018-06-13 04:35:43

标签: c string segmentation-fault newline null-terminated

所以我有一个包含多个换行符转义序列的字符串。我想将字符串剪切到前n行,就像coreutils的head程序一样。比如说我有字符串“a \ nb \ nc \ n”,我想要第一行所以我希望我的输出字符串是“a”。在我需要剪切字符串的其他情况下,我只是在我希望字符串结束的位置放置一个空终止符。但是当我运行这样的东西时:

void main() {
    char *str = "a\nb\nc\n";
    str[1] = '\0';
}

我遇到了段错误。我真的不明白为什么。我该怎么做才能解决这个问题?

0 个答案:

没有答案