Удаление разделителя строк и добавление символа новой строки в C - PullRequest
0 голосов
/ 26 сентября 2018

Я пытался создать функцию, которая удаляет терминатор строки и добавляет символ новой строки вместо строки.То, как я это делаю, приводит к сегфоИ я не могу понять, почему моя строка неизменна и как заставить ее работать с моей реализацией.Большое спасибо за любую помощь.

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

1 Ответ

0 голосов
/ 26 сентября 2018

C-строки являются неизменяемыми, фактически char const[], которые выглядят как char [] только по странным историческим причинам.

Если вы хотите непостоянную строку, инициализируйте массив char из строкового литерала:

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