1

こんにちはみんなはどこでもテキストファイルで特定の単語を検索する方法を見つけることができなかったので、ここに行きます、これは私が今持っているものであり、テキストファイル全体を読んで印刷するだけです。

#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

4

3 に答える 3

4

strstr(line, word)行内の単語を検索するために使用します。strstr非 NULL を返す場合は、現在の行に単語が含まれていることを意味します。

于 2013-01-17T10:15:51.577 に答える
1

固定された単語のセットを検索するときは、Aho-Corasickアルゴリズムを確認することをお勧めします。パフォーマンスの面では本当に良いです。

于 2013-01-17T10:53:51.997 に答える
1

あなたのアプローチは機能しますが、それは少し単純であり、それよりもはるかにうまくいく可能性があります.

文字列検索の優れたアルゴリズムを次に示します。Boyer–Moore 文字列検索アルゴリズム

于 2013-01-17T10:25:21.247 に答える