The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Как непросто учится СИ"
Отправлено Александр, 05-Окт-18 16:27 
>>> уважаемый, я всё понимаю,
>>> но это не школа начинающих погромистов
>>> для начала прочитайте "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;
}


 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, [email protected] (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру