2011-12-11 47 views
1

一个简短的问题打交道真的,寻找,想了解一下,并要求任何提示最好的办法就是处理这种类型的输入是什么,研究词的数量上与输入用C

word word 
word word word word 
word word word 
word word 

每行是完全随机的,每个单独的单词可以添加到某个数据结构中,例如链接列表或树。

Fgets每行和解析?的getchar()?任何线索?

+0

恶意输入的可能性是多少?例如,你能得到一个长度超过1千字的单词吗?标点符号会发生什么? –

回答

2

fgets一次读取一行似乎是最好的选择。然后,只需使用strtok或类似的东西来分割空白空间并迭代结果。

+0

我从来没有遇到过strtok,谢谢。 – PnP

+2

请注意,'strtok()'在处理它时会破坏它的输入。它也不是线程安全的,你必须确保你的解析器没有其他函数使用'strtok()',并且没有调用解析器的函数使用'strtok()'。所调用函数的条件通常不太繁重;在库代码中,第二个条件(没有调用函数也使用'strtok()')是不可执行的。 –

+0

有没有另外一种方法可以推荐,我对strtok – PnP