Подсчитать количество подряд идущих пробелов в строке - 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;
}
Объяснение кода листинга программы
Вывод: В данном коде реализована функция, которая подсчитывает количество пробелов в строке. Список действий:
- Ввод и инициализация переменных:
- iChr = 0 (присваиваем переменной значение 0)
- iCnt = 0 (присваиваем переменной значение 0)
- Запуск цикла while, который выполняется до тех пор, пока не встретит пробел:
- Получаем значение символа (iChr) с помощью функции getchar()
- Проверяем полученное значение:
- Если iChr равно EOF, то выводим сообщение
No Spaces in the Lineи завершаем программу - Если iChr равно '\r' или '\n', то также выводим сообщение
No Spaces in the Lineи завершаем программу
- Если iChr равно EOF, то выводим сообщение
- Увеличиваем значение iCnt на 1 после каждого не пробельного символа
- Запуск цикла while, который выполняется до тех пор, пока не встретит не пробельный символ:
- Получаем значение символа (iChr) с помощью функции getchar()
- Увеличиваем значение iCnt на 1 после каждого пробельного символа
- Выводим количество пробелов (iCnt) с помощью функции printf()
- Завершаем программу Обратите внимание, что данный код не обрабатывает символы табуляции ('\t') и других специальных символов.