Я должен получить третье слово в строке и хотел использовать strtok .Теперь первый printf работает, но после этого я получаю ошибку сегмента.Так что tokenizedString = strtok(NULL, " ");
должно быть причиной проблемы, верно?
Просто для контекста: я ищу третье слово в строке, и между словами может быть как можно больше пробелов.
#include <string.h>
#include <stdio.h>
char *tokenizeString(char *userCommand)
{
char *tokenizedString;
int counterForToken;
tokenizedString = strtok(userCommand, " ");
for(counterForToken = 0; counterForToken != 3; counterForToken++)
{
printf("%s\n", tokenizedString);
tokenizedString = strtok(NULL, " ");
if(tokenizedString == NULL)
{
break;
}
}
printf("%s\n", tokenizedString);
return tokenizedString;
}
int main(void)
{
char userCommand[255] = {0};
fgets(userCommand, sizeof(userCommand), stdin);
tokenizeString(userCommand);
}