Вот что я прямо сейчас:Как подсчитать, сколько раз слово появляется в текстовом файле
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-файле имеется только один ключ для каждого из них. Например, если текстовый файл является:
key Key key key
и символ * ключ «ключ», то рассчитывать только 1, но счетчик должен быть на самом деле 3. Однако, если текстовый файл является:
key
key
Key
key
Затем он возвращает правильный счетчик (3). Не уверен, что здесь не так.
1. 'fgets' читает целую строку за раз (или до заданной максимальной длины) 2.' strstr' возвращает ** первое ** вхождение подстроки. – Kninnug
Ваш код может обнаруживать только одно вхождение в байтах 'buf', что в данном случае является одной строкой. – Overv
fgets читает строку за раз. Если вы хотите, чтобы ваши ключи были ограничены пробелами, используйте fscanf (temp, «% s», word) – Jordonias