Я делаю что-то неправильно? Мне нужно небольшое руководство с разделителями. Довольно новый для C - PullRequest
0 голосов
/ 28 октября 2019

Когда я пытаюсь использовать скобки в качестве разделителя, это не работает. Я довольно новичок в C, так что будь осторожен со мной.

char* tempToken = "";
char* delim = { " ,.\n()" };
tempToken = strtok(fileStrings[j], delim);


while (tempToken != NULL)
{
    //copy word by word to the words array
    strcpy(words[i++], tempToken);
    tempToken = strtok(NULL, " ,.\n");

}

Мой ожидаемый результат будет -
Вход:

(long-lasting)  

Выход:

long-lasting

Но мой фактический вывод -
Вход:

(long-lasting)  

Вывод:

(long-lasting)

1 Ответ

1 голос
/ 28 октября 2019

Вы изменили набор разделителей для последовательных вызовов (с " ,.\n()" на " ,.\n"), поэтому, даже если последняя часть строки содержит круглые скобки, strtok() не будет рассматривать их как разделитель. Проверьте ваш список разделителей, если он в порядке!

т.е.: (длительный) (продолжительный пост) будет проанализирован как 1. длительный и 2. (длительный пост).

...