>>> уважаемый, я всё понимаю,
>>> но это не школа начинающих погромистов
>>> для начала прочитайте "Brian W. Kernighan, Dennis Ritchie - C Programming Language
>>> - 2E"
>>> желательно на английском,
>>> а потом идите на профильные форумы
>> Как раз эту книгу я сейчас и читаю.
> Книга то хорошая, но это не первый учебник с которого стоит начинать Вы не переживайте и не слушайте грубиянов с синдромом Даннига-Крюгера. Учитесь и все будет хорошо. Вот моя прога (сырая, но работает). Она не только ищет вводимый вами символ для поиска в файле, но и указывает строки где нашла и подсчитывает все, что нужно. Удачи вам. Не бросайте учебу.
#include <stdio.h>
#include <stdlib.h> // для exit(EXIT_FAILURE)
#include <string.h>
#include "myheader.h"
extern char str_arr[str][col]; // массив определен в main.c
/* ф-я принимает искомый символ ch, указ. на файл f_ptr, кол. строк в файле и столбцов f_str, f_col и два указателя на счетчики совпадений искомого символа в строках и в файле вцелом fc_ptr и c_ptr ВОЗВРАЩАЕТ указатель на счетчик числа совпадений символа по всему файлу fc_ptr) */
int * find_char_infile(char ch, FILE * f_ptr, int f_str, int f_col, int * fc_ptr, int * c_ptr){
//int file_count = 0;
for (int i = 0; i < f_str; i++){
fgets(str_arr[i], f_col, f_ptr);
if(strchr(str_arr[i], ch) != NULL){ // ф-я strchr(str_arr[i], argv[1][0]) ищет вхождение символа argv[1][0] в строку str_arr[i] и если он там сеть, возвр. его адрес(символа), если нет - NULL
//int count = 0;
for(int j = 0; j< f_col; j++){ // проходим строку по всем символам col
if(str_arr[i][j] == ch){
//++count; // счетчик совпадений для СТРОКИ
//++file_count; // счетчик совпадений для ФАЙЛА
++(*fc_ptr); // счетчик совпадений для ФАЙЛА
++(*c_ptr); // счетчик совпадений для СТРОКИ
}
}
printf("символ \"%c\" встречается %i раз(а) в строке %s", ch, *c_ptr, str_arr[i]);
//count = 0;
*c_ptr = 0;
} //конец блока if
} // конец блока for
//printf("искомый символ встретился в файле %i раз(а)\n", *fc_ptr);
return fc_ptr;
}