別の文字列 (haystack) 内の文字列 (針) の出現回数をカウントする最速の方法は何だろうと思っていました。私がやっている方法は次のとおりです。
int findWord(char * file, char * word){
char *fptr;
char * current = strtok_r(file, " ,.\n", &fptr);
int sum = 0;
while (current != NULL){
//printf("%s\n", current);
if(strcmp(current, word) == 0)
sum+=1;
current = strtok_r(NULL, " ,.\n", &fptr);
}
return sum;
}
より複雑なアルゴリズム (Boyer-Moore) を使用した方が速いでしょうか? ありがとう