在C

时间:2018-09-25 21:26:32

标签: c c99

我试图创建一个删除字符串终止符并在字符串中添加换行符的函数。我这样做的方式导致了段错误。而且我无法确定为什么我的字符串是不可变的以及如何使其与我的实现一起工作。非常感谢您的帮助。

int main () {
    char* value = "message";
    value[7] = '\n';
    int success = write(1, value, 7);
    if (success == -1) {
        printf("write failed");
    }
}

1 个答案:

答案 0 :(得分:1)

C字符串是不可变的,实际上是char const[],出于奇怪的历史原因,它们看起来像char []

如果要使用可变字符串,请从字符串文字中初始化一个char数组:

char value[] = "message"; //autosized