Как завершить строку, которая уже имеет текст в C? - PullRequest
1 голос
/ 07 апреля 2020

Как я могу завершить указатель строки, который уже имеет значение? Вот что я попробовал:

char* pointer = "Hello";
pointer = "\0"

Это не работает. Я ищу способ сделать что-то с той же концепцией этой работы, так как я не тот, кто объявляет значение указателя (функция есть).

Функция - это функция recv в <sys/socket.h> и это не отменяет его для меня.

1 Ответ

3 голосов
/ 07 апреля 2020

Вы должны знать length вашей строки, чтобы завершить ее нулем. В вашем случае функция recv возвращает длину при успешном выполнении. В противном случае возвращается -1.

Переменная, скажем, str, в которой хранится ваша строка, должна быть способна хранить в ней как минимум length + 1 символов.

Затем вы можете сделать:

ssize_t length = /* Call to recv function */;
if (length != -1)
    str[length] = '\0';
...