Подсчитать количество слов, нечетной длины, найти частоту вхождения букв и удалить текст в круглых скобках - C (СИ)
Формулировка задачи:
С клавиатуры вводится строка . Разработать программу , которая реализует указанные действия .
а ) подсчитывает количество слов , которые имеют нечетную длину ;
б) выводит на экран частоту вхождения каждой буквы ;
в) удаляет текст размещен в круглых скобках.
Решение задачи: «Подсчитать количество слов, нечетной длины, найти частоту вхождения букв и удалить текст в круглых скобках»
textual
Листинг программы
#include <stdio.h> #include <string.h> #include <ctype.h> unsigned count_words_odd(const char* s); void print_repchar(FILE* _out, const char* s); char* str_rem(char* s, char fc, char lc); int main(void){ char s[] = "lang (wolf), cat, dog, (bat), (bea), tiger, (leon), (bars)"; printf("count words odd: %u\n", count_words_odd(s)); print_repchar(stdout, s); puts(s); puts( str_rem(s, '(', ')') ); return 0; } //кол-во слов, которые имеют нечетную длину unsigned count_words_odd(const char* s){ unsigned i = 0, n = 0; do { if(isalnum(*s)) ++i; else if(i > 0){ if(i & 1) ++n; i = 0; } } while(*s++ != '\0'); return n; } //выводит на экран частоту вхождения каждой буквы void print_repchar(FILE* _out, const char* s){ int i; unsigned int abc[26]; memset(abc, 0, sizeof(abc)); while(*s){ i = toupper(*s); if(i >= 'A' && i <= 'Z') ++abc[i - 'A']; ++s; } for(i = 0; i < 26; ++i){ if(abc[i] > 0) fprintf(_out, "%C(%u)\n", (char)(i + 'A'), abc[i]); } putc('\n', _out); } //удаляет текст размещен в круглых скобках char* str_rem(char* s, char fc, char lc){ char* i, *p, *t = s; while(*s && (*s != fc)) ++s; for(p = s; *s; *s = *p){ if(*p == fc){ i = p + 1; while(*i && (*i != lc)) ++i; if(*i == lc){ ++s; p = i; continue; } } ++s; ++p; } return t; }
Объяснение кода листинга программы
- В функции
count_words_odd
происходит подсчет слов, которые имеют нечетную длину. - В функции
print_repchar
выводится на экран частота вхождения каждой буквы. - В функции
str_rem
удаляется текст, размещенный в круглых скобках.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д