Здравствуйте, я пытаюсь удалить первое слово в строке. Например: buffer = "Hello my name is Code"
После внедрения removeToken()
буфер должен быть "my name is Code"
.Удаление первого слова в строке в C
Код, который у меня есть, дает мне ошибку сегментации.
У меня есть следующие:
char *buffer = NULL;
char *buffercopy = NULL;
void startBuffer(char *inputLine) {
int length = strlen(inputLine);
buffer = (char *)malloc(length);
buffercopy = (char *)malloc(length);
strcpy(buffer, inputLine);
strcpy(buffercopy, inputLine);
}
char *removeToken() {
/* removes the first token from the buffer, buffer is reduced in size */
char *token;
char delimiters[2] = " ,";
int origLen = strlen(buffer);
token = strtok(buffer, delimiters);
printf("%s \n", token);
int p = strlen(token);
int i = 0;
while (buffer[i] != '\0') {
buffer[i] = buffer[i + p];
i++;
}
return buffer;
}
вы пробовали пошаговый код самостоятельно с помощью отладчика? Вы знаете, где происходит segfault? –
Да! он возникает в цикле while, начиная с «while (buffer [i]! = ....» – jobravooo