当我尝试使用括号作为分隔符时,它似乎不起作用。我对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)
最佳答案
您已更改了连续调用(从" ,.\n()"
到" ,.\n"
)上设置的定界符,因此即使字符串的后半部分包含任何括号,strtok()
也不会将其视为定界符。检查分隔符列表是否可以!
即:(长效)(长禁食)将解析为1.长效和2.(长禁食)。
关于c - 难道我做错了什么?我需要定界符的一些指导。 C的新手,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58585474/