【发布时间】:2015-11-04 21:41:54
【问题描述】:
我正在尝试将输入文件(包含具有多行和分隔符的文本文档,即“!,.?”)解析为单词。我的功能'拆分功能'是:
int splitInput(fp) {
int i= 0;
char line[255];
char *array[5000];
int x;
while (fgets(line, sizeof(line), fp) != NULL) {
array[i] = strtok(line, ",.!? \n");
printf("Check print - word %i:%s:\n",i, array[i]);
i++;
}
return 0;
}
【问题讨论】:
-
然后呢?问题是什么?什么是预期的输出?你实际上得到了什么?
-
阅读 strtok 的手册页:cplusplus.com/reference/cstring/strtok
-
@gopi:当你只发送 NULL 时,strtok 应该如何知道要拆分哪个字符串?您必须首先使用指向要拆分的字符串的指针调用 strtok。然后你用 NULL 重复调用它,以获得更多的令牌。
-
是的,抱歉 - 我刚刚意识到这一点。它仍然不起作用 - 即使用 'line' 替换 NULL。
-
还是不行具体点。有什么打印的吗?此外,您需要反复调用
strok,直到它返回NULL(第一次使用line作为第一个参数,然后使用NULL作为参数。