当我尝试使用括号作为分隔符时,它似乎不起作用。我对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/

10-10 08:31