Подсчитать количество подряд идущих пробелов в строке - 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') и других специальных символов.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д