Подсчитать количество слов, начинающихся на большую букву и содержащих хотя бы один арифметический знак - 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;
}

Объяснение кода листинга программы

  1. Подключение необходимых библиотек: - для работы с функциями ввода-вывода, - для работы со строками, - для работы с преобразованием символов.
  2. Определение переменных:
    • SIGNS - строка, содержащая арифметические знаки (+, -, *).
    • DELIM - строка, разделяющая слова в предложении (пробел, запятая, точка, восклицательный знак, вопросительный знак, таблетка, символ новой строки).
  3. Определение функции GOOD_WORD(s), которая проверяет, является ли символ s большой буквой и содержит ли он хотя бы один арифметический знак.
  4. Ввод строки с помощью fgets(buf, BUFSIZ, stdin).
  5. Создание переменных cnt и ptr для подсчета и обработки слов соответственно.
  6. Использование функции strtok(ptr, DELIM) для разделения строки на слова и поочередной проверки каждого слова с помощью функции GOOD_WORD(ptr).
  7. Вывод количества слов, начинающихся с большой буквы и содержащих арифметический знак.
  8. Повторение шагов 4-7 для каждой введенной строки.
  9. Завершение программы с возвратом 0.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.636 из 5
Похожие ответы