這是我現在所擁有的:如何算一個字有多少次出現在一個txt文件
int findKey(char *in, char *key, int buf){
int count = 0;
FILE *f;
f = fopen(in,"r");
char temp[buf];
while(fgets(temp,buf,f) != NULL){
if((strstr(temp,key))!= NULL){
count++;
}
}
fclose(f);
return count;
}
我通過txt文件讀取,並通過它查找鍵。如果我找到它,那麼我會增加計數。但是,如果txt文件中只有一個關鍵字出現,這似乎只能起作用。例如,如果txt文件是:
key Key key key
與char *鍵爲「關鍵」再算上僅爲1,但數量實際上應該是3 但是,如果txt文件是:
key
key
Key
key
然後它返回正確的計數(3)。不知道這裏有什麼問題。
1.'fgets'每次讀取一行(或者直到給定的最大長度)2.'strstr'返回子字符串的** first **事件。 – Kninnug
您的代碼只能檢測到每個「buf」字節的單個事件,在這種情況下恰好是單行。 – Overv
fgets一次讀取一行。如果你想你的鍵是空格分隔使用fscanf(temp,「%s」,word) – Jordonias