gpt4 book ai didi

c - 将文本文件拆分为 C 中的单词

转载 作者:行者123 更新时间:2023-12-04 11:44:19 24 4
gpt4 key购买 nike

我有两种类型的文本,我想将它们拆分成单词。

第一种文本文件只是用换行符分隔的单词。

Milk
Work
Chair
...

第二种文本文件是书中的文本,只有空格。(没有逗号、问号等)

And then she tried to run 
but she was stunned by the view of
...

你知道哪种方法最好吗?

我尝试了以下 2 种方法,但似乎我正在分段。

对于我使用的第一种文本:

while(fgets(line,sizeof(line),wordlist) != NULL)
{
/* Checks Words |
printf("%s",line);*/
InsertWord(W,line);/*Function that inserts the word to a tree*/
}

对于我使用的第二种文本:

while(fgets(line,sizeof(line),out) != NULL)
{
bp = line ;
while(1)
{
cp = strtok(bp," ");
bp = NULL ;

if(cp == NULL)
break;

/*printf("Word by Word : %s \n",cp);*/
CheckWord(Words, cp);/*Function that checks if the word from the book is the same with one in a tree */
}
}

如果这些问题有误,您能提出更好的建议或纠正我吗?

编辑:(关于segm.fault)

InsertWord 是一个将单词插入树中的函数。当我使用这段代码时:

for (i = 0 ; i <=2 ; i++)
{
if (i==0)
InsertWord(W,"A");
if (i==1)
InsertWord(W,"B");
if (i==2)
InsertWord(W,"c");
}*/

树可以很好地插入单词并打印它们,这意味着我的树工作正常并且功能正常(它们也是我们的老师给的)。但是当我尝试这样做时:

char this_word[15];
while (fscanf(wordlist, "%14s", this_word) == 1)
{
printf("Latest word that was read: '%s'\n", this_word);
InsertWord(W,this_word);
}

我从树中得到错误。所以,我猜这是某种分割。有什么想法吗?

最佳答案

这是 fscanf%s 的输入类型:

char this_word[15];
while (fscanf(tsin, "%14s", this_word) == 1) {
printf("Latest word that was read: '%s'.\n", this_word);
// Process the word...
}

关于c - 将文本文件拆分为 C 中的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37317612/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com