Подсчитать количество слов, начинающихся на большую букву и содержащих хотя бы один арифметический знак - C (СИ)
Формулировка задачи:
Ввожу в строку слова, разделенные символами-разделителями «_.,;:\n\t!?».
Подсчитать количество слов, начинающихся на большую букву и содержащих хотя бы один арифметический знак(+-*/%).
Что надо изменить в программе?
#define ARIF "+-/*%" int Count(char *s) { int i, count=0,j; for(i = 0; s[i] != '\0'; i++) for(j = 0; s[j] != '\0'; j++) { if ((isupper(s[i])) && (s[i-1] == '_.,;:\n\t!?') && (strchr(ARIF, s[j]))) count++; }
Решение задачи: «Подсчитать количество слов, начинающихся на большую букву и содержащих хотя бы один арифметический знак»
textual
Листинг программы
#include <stdio.h> #include <string.h> #include <ctype.h> #define SIGNS "+-%*" #define DELIM " ,.!?\t\n" #define GOOD_WORD(s) ( isupper(*s) && strpbrk(s, SIGNS) ) int main(void) { char buf[BUFSIZ]; while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' ) { int cnt; char * ptr; for ( cnt = 0, ptr = strtok(buf, DELIM); ptr; ptr = strtok(NULL, DELIM) ) cnt += GOOD_WORD(ptr); printf("%d good word(s).\n", cnt); } return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек:
- для работы с функциями ввода-вывода, - для работы со строками, - для работы с преобразованием символов. - Определение переменных:
- SIGNS - строка, содержащая арифметические знаки (+, -, *).
- DELIM - строка, разделяющая слова в предложении (пробел, запятая, точка, восклицательный знак, вопросительный знак, таблетка, символ новой строки).
- Определение функции GOOD_WORD(s), которая проверяет, является ли символ s большой буквой и содержит ли он хотя бы один арифметический знак.
- Ввод строки с помощью fgets(buf, BUFSIZ, stdin).
- Создание переменных cnt и ptr для подсчета и обработки слов соответственно.
- Использование функции strtok(ptr, DELIM) для разделения строки на слова и поочередной проверки каждого слова с помощью функции GOOD_WORD(ptr).
- Вывод количества слов, начинающихся с большой буквы и содержащих арифметический знак.
- Повторение шагов 4-7 для каждой введенной строки.
- Завершение программы с возвратом 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д