Подсчитать количество подряд идущих пробелов в строке - C (СИ)

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

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

Дана строка пробелов подсчитать количество подряд идущих пробелов. Не работает если нет ни одного пробела.Помогите исправить
//---------------------------------------------------------------------------
 
#include <stdio.h>
#include <conio.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
void main()
{int a[10], k=0, i=0, l=0, m=0;
char c;
c=getchar();
while (c!=EOF)
{if (c==' ')
 {k=0;
   {  while(c==' ' )
         {k++;
         c=getchar();}
      a[i+1]=k;
      i++;
      m++;
        } }
  else
 c=getchar();
      }
if(a[i]>a[i+1])
   l=a[i];
else 
   l=a[i+1];
if(m==1)
   printf("%d", a[1]);
else
{for (i=1; i<m; i++)
if(a[i]>l)
   l=a[i];
printf("%d", l);}
 getch();
}
//---------------------------------------------------------------------------

Решение задачи: «Подсчитать количество подряд идущих пробелов в строке»

textual
Листинг программы
#include<stdio.h>
#include <conio.h>
 
int main(int argc,char** argv)
{
   int   iChr = 0;
   int   iCnt = 0;
 
   while ((iChr = getchar()) != ' ')
   {
      if ((iChr == EOF) || (iChr == '\r') || (iChr == '\n'))
      {
         printf("No Spaces in the Line\n");
         return 0;
      }
 
      continue;
   }
 
   ++iCnt;
 
   while ((iChr = getchar()) == ' ')
   {
      ++iCnt;
   }
 
   printf("Space(s) total: %d\n",iCnt);
 
   return 0;
}

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

Вывод: В данном коде реализована функция, которая подсчитывает количество пробелов в строке. Список действий:

  1. Ввод и инициализация переменных:
    • iChr = 0 (присваиваем переменной значение 0)
    • iCnt = 0 (присваиваем переменной значение 0)
  2. Запуск цикла while, который выполняется до тех пор, пока не встретит пробел:
    • Получаем значение символа (iChr) с помощью функции getchar()
    • Проверяем полученное значение:
      • Если iChr равно EOF, то выводим сообщение No Spaces in the Line и завершаем программу
      • Если iChr равно '\r' или '\n', то также выводим сообщение No Spaces in the Line и завершаем программу
  3. Увеличиваем значение iCnt на 1 после каждого не пробельного символа
  4. Запуск цикла while, который выполняется до тех пор, пока не встретит не пробельный символ:
    • Получаем значение символа (iChr) с помощью функции getchar()
    • Увеличиваем значение iCnt на 1 после каждого пробельного символа
  5. Выводим количество пробелов (iCnt) с помощью функции printf()
  6. Завершаем программу Обратите внимание, что данный код не обрабатывает символы табуляции ('\t') и других специальных символов.

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


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

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

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