Мне нужно получить третье слово в строке, и я хотел использовать strtok. Теперь первый printf работает, но после этого я получаю Seg Fault. Значит, проблема 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);
}
userCommand
до звонкаtokenizeString
. - person David C. Rankin   schedule 23.12.2018tokenizeString(userCommand);
- person mackesmilian   schedule 23.12.2018userCommand
? - person Achal   schedule 23.12.2018UserCommand
вот так:char userCommand[255]; fgets(userCommand, sizeof(userCommand), stdin);
- person mackesmilian   schedule 23.12.2018UserCommand
- person mackesmilian   schedule 23.12.2018