搜索文本文件中的特定单词

时间:2013-01-17 10:13:38

标签: c text-files fgets fputs

HI家伙还没有找到如何在任何地方搜索文本文件中的特定单词,所以在这里,这就是我现在所拥有的,只是阅读并打印整个文本文件。

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

int main ( void )
{

static const char filename[] = "chat.log";
FILE *file = fopen ( filename, "r" );
if ( file != NULL )
{ 
char line [ 128 ]; /* or other suitable maximum line size */
while ( fgets ( line, sizeof line, file ) != NULL ) /* read a line */
{

fputs ( line, stdout ); /* write the line */
} 
fclose ( file );
}

else
{
perror ( filename ); /* why didn't the file open? */
}
return 0;
}

谢谢:D

3 个答案:

答案 0 :(得分:4)

使用strstr(line, word)在该行内的任意位置查找该字词。如果strstr返回非NULL,则表示当前行包含您的单词。

答案 1 :(得分:1)

你的方法会起作用,但它有点天真,你可以做得更好。

这是一个很好的字符串搜索算法:Boyer–Moore string search algorithm

答案 2 :(得分:1)

在搜索固定的单词集时,我建议您查看Aho-Corasick algorithm。它在性能方面非常好。