这是我现在所拥有的:如何算一个字有多少次出现在一个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