Подсчитать число слов, начинающихся на большую букву и содержащих хотя бы один арифметический знак - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Подсчитать количество слов, которые начинаются с большой буквы и в слове есть хотя бы один арифметический символ(+-*/%).Написал программу, которая находит в слове большую букву и арифметический символ.Как сделать что бы искал именно первую большую букву?Слова в строке ввожу через пробел.
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]))&&(strchr(ARIF,s[j])))
    count++;
}
return count;
printf("count=%d",count);
}

Решение задачи: «Подсчитать число слов, начинающихся на большую букву и содержащих хотя бы один арифметический знак»

textual
Листинг программы
char *p, *q;
flag = 1;  // флаг начала слова
for(p=s; *p; p++) {
   if (flag && isupper(*p)) {
      for (q=p+1; *q && *q!= ' ') {
         if (strchr(ARIF, *q)) {
           count++;
           break;
         }
      }
   }
   if (*p==' ') flag = 1;
   else flag = 0;
}

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

  1. Объявлены две переменные типа char *: p и q.
  2. Инициализирован флаг count с значением 1.
  3. В цикле for перебираются символы строки s.
  4. Если текущий символ является первым символом слова (flag равно 1) и является большой буквой (isupper возвращает 1), то начинается внутренний цикл for.
  5. Во внутреннем цикле проверяется каждый последующий символ до следующего пробела (или до конца строки, если пробела нет).
  6. Если текущий символ является арифметическим знаком (проверка с помощью функции strchr, которая возвращает указатель на первый символ, следующий за последним символом строки ARIF), то переменная count увеличивается на 1, и внутренний цикл прерывается.
  7. Если текущий символ является пробелом, то флаг count устанавливается в 1, иначе - в 0.
  8. После завершения цикла for значение переменной count будет содержать количество слов, удовлетворяющих условиям задачи.

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


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

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

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