Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.07.2011, 12:35   #1
vinternete
Пользователь
 
Регистрация: 09.10.2010
Сообщений: 10
Печаль задача на Си,Ввести строку, в которую могут входить только цифры и буквы.

Ввести строку, в которую могут входить только цифры и буквы. Распечатать те группы букв, в которых буква А встречается не менее двух раз. (Группа букв - это последовательность букв, обрамленная цифрами.)
Код:
#include <stdio.h>
#include <string.h>
 
int meets_enough(const char * s, char c, int needed){
        char * p;
        int cnt;
        
        for ( cnt = 0, p = strchr(s, c); p && ++cnt; p = strchr(p + 1, c) ) /*проверка на две буквы А*/
                if ( cnt == needed ) // если две, возвращает 1;
                        return 1;
        
        return 0;
}
 
#define SRCH_SYMBOL 'A'         //константа А
#define MEETS_NEEDED 2          //константа необходимого количества букв А
#define DELIMS "0123456789\n"   // допустимые цыфры
 
int main(void){
        char buf[BUFSIZ], * p;         
        while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' )
                for ( p = strtok(buf, DELIMS); p; p = strtok(NULL, DELIMS) )
                        if ( meets_enough(p, SRCH_SYMBOL, MEETS_NEEDED) )
                                printf("%s\n", p);
        return 0;
}
если кого не затруднит, не могли бы прокомментировать, что делает код,
в этой задаче.
особенно важна функция main
vinternete вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Налог на недвижимость могут ввести в 2013 году Alter Свободное общение 20 19.04.2013 12:19
В России могут ввести уголовную ответственность за рассылку СПАМА Вадим Мошев Свободное общение 12 15.05.2011 06:57
Буквы в цифры gamaiunov_alex Microsoft Office Excel 5 19.04.2011 09:40
Перенести в новую строку только те слова, которые разделены одним пробелом. задача на паскаль SashaPRO Паскаль, Turbo Pascal, PascalABC.NET 1 22.12.2008 20:01