Программа не считает количество пробелов в строке - C (СИ)
Формулировка задачи:
Добрый день! Программа компилируется, подсчитывает количество строк и табуляцию, но пробелы не считает. Подскажите, в чем ошибка?
#include <stdio.h>
main()
{
int c, sp, tab, st;
sp = 0; //spaces
tab = 0; //tabulation
st = 0; //strings
while ((c = getchar()) != EOF)
if (c == '\n') //подсчет символов новой строки
++st;
if (c == ' ') //подсчет пробелов
++sp;
if (c == '\t') //табуляция
++tab;
printf("Spaces %d\nTabulation %d\nStrings %d\n", sp, tab, st);
getch();
return 0;
}Решение задачи: «Программа не считает количество пробелов в строке»
textual
Листинг программы
while ((c = getchar()) != EOF)
{
if (c == '\n') //подсчет символов новой строки
++st;
if (c == ' ') //подсчет пробелов
++sp;
if (c == '\t') //табуляция
++tab;
}
Объяснение кода листинга программы
- while((c = getchar()) != EOF) — это цикл, который выполняется до тех пор, пока символ, считываемый из файла или стандартного ввода, не станет конечным символом (EOF).
- if(c == '\n') — это условие, которое проверяет, является ли текущий символ символом новой строки. Если это так, то переменная st увеличивается на 1.
- if(c == ' ') — это условие, которое проверяет, является ли текущий символ пробелом. Если это так, то переменная sp увеличивается на 1.
- if(c == '\t') — это условие, которое проверяет, является ли текущий символ табуляцией. Если это так, то переменная tab увеличивается на 1.
- getchar() — это функция, которая считывает символ из файла или стандартного ввода и возвращает его.
- EOF — это константа, которая представляет конечный символ, обозначающий конец файла или стандартного ввода.
- st, sp, tab — это переменные, которые используются для подсчета символов новой строки, пробелов и табуляций соответственно.