The OpenNET Project / Index page

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



"Как непросто учится СИ"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (C/C++)
Изначальное сообщение [ Отслеживать ]

"Как непросто учится СИ"  –1 +/
Сообщение от dcc0email (?), 17-Сен-16, 15:38 
У меня почти весь ушёл на одну мизерную программу, чтобы написать без ошибок и то сомневаюсь.
Ищет символ в строке. Большего ничего не делает:

#include <stdio.h>

int main(int argc, char *argv[])
{
    char * str=argv[2];
    char * patrn=argv[1];
            
             if (argc < 2) {
             printf("Enter a symbol and string\n");
             return 0;
           }
             if (patrn[1] !='\0') {
             printf("Enter just one symbol\n");
             return 0;
           }
            if (argc < 3 ) {
             printf("Enter pattern and string\n");
             return 0;
           }
             if (argc > 3 ) {
             printf("Use double \" \" quotes for strings containing spaces\n");
             return 0;
           }
            
             int j =0;
             while (str[j] != 0) {
                  if (patrn[0] == str[j]) {
                  printf("Found: %c in position %d", str[j], j);
                  break;
                  return 1;            
                  }            
                  ++j;
             }
            
             return 0;        
}

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Как непросто учится СИ"  +1 +/
Сообщение от asavah (ok), 17-Сен-16, 16:15 
уважаемый, я всё понимаю,
но это не школа начинающих погромистов

для начала прочитайте "Brian W. Kernighan, Dennis Ritchie - C Programming Language - 2E"
желательно на английском,
а потом идите на профильные форумы

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Как непросто учится СИ"  –1 +/
Сообщение от dcc0email (?), 17-Сен-16, 17:34 
> уважаемый, я всё понимаю,
> но это не школа начинающих погромистов
> для начала прочитайте "Brian W. Kernighan, Dennis Ritchie - C Programming Language
> - 2E"
> желательно на английском,
> а потом идите на профильные форумы

Как раз эту книгу я сейчас и читаю.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Как непросто учится СИ"  +/
Сообщение от Pahanivo (ok), 19-Сен-16, 20:09 
С нашим образованием эдак лет через пяток для программера "Hello world!" будет считать очень круто ...
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "Как непросто учится СИ"  +/
Сообщение от A (?), 07-Июл-18, 23:15 
>> уважаемый, я всё понимаю,
>> но это не школа начинающих погромистов
>> для начала прочитайте "Brian W. Kernighan, Dennis Ritchie - C Programming Language
>> - 2E"
>> желательно на английском,
>> а потом идите на профильные форумы
> Как раз эту книгу я сейчас и читаю.

Книга то хорошая, но это не первый учебник с которого стоит начинать

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

6. "Как непросто учится СИ"  +/
Сообщение от Александрemail (??), 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;
}


Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Как непросто учится СИ"  +/
Сообщение от Pahanivo (ok), 06-Окт-18, 00:03 
Может сначала нужно научится работать со временем? И датой?
Если что, то я имел ввиду - НАДО НАУЧИТСЯ ЧИТАТЬ ЭТИ ПАРАМЕТРЫ НА ПОСТАХ.


Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема


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