Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我做错什么了吗?我需要一些关于分隔符的指导。对C相当陌生_C_Parsing - Fatal编程技术网

我做错什么了吗?我需要一些关于分隔符的指导。对C相当陌生

我做错什么了吗?我需要一些关于分隔符的指导。对C相当陌生,c,parsing,C,Parsing,当我尝试使用括号作为分隔符时,它似乎不起作用。我对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); tempT

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

您已经更改了连续调用(从<代码>)、\n()“< /代码>到<代码>”的定界符设置。\n“”,因此即使字符串的后面部分包含任何括号,<代码> Strtok()<代码>也不会将其视为定界符。检查您的分隔符列表是否正确


ie:(长期)(长期禁食)将解析为1。持久和2。(长时间禁食)。

对我来说很好。您需要发布一个,以便其他人看到问题。可能您想在循环中调用strtok时使用
delim
?如图所示的代码不会扫描或打印任何内容。请发布一个完整且可编译的最佳示例。@rici可能是这样,但这不是原因。所示的代码也适用于我。也就是说,在用缺失的部分进行了一次扩展之后。所以请KenzieBussell提供错误代码的完整来源<代码>字符*TENTROKEN=“”不需要分配字符串文字的地址,因为您可以立即分配新值。对于初始化,可以使用
NULL
(long-lasting)  
(long-lasting)