Попытка написать программу на C, которая:
считает количество символов, слов и строк, прочитанных из стандартного ввода, до достижения EOF.Предположим, что ввод представляет собой текст ASCII любой длины.Слова определяются как непрерывные последовательности букв (от a до z, от A до Z) и апостроф (', значение 39 десятичное), разделенные любым символом вне этих диапазонов.Строки определяются как непрерывные последовательности символов, разделенные символами новой строки ('\ n').Символы после последнего символа новой строки не будут включены в счетчик строк.
Я написал следующее, которое отлично работает для подсчета символов, но не учитывает ни слова, ни строки.Я не понимаю, почему.
#include <stdio.h>
int main() {
unsigned long int countchar=0;
unsigned long int word=0;
unsigned long int line=0;
int c;
while (((c=getchar())!=EOF)) {
countchar++;
if ((c>='A' && c<= 'Z') || (c>='a' && c<= 'z') || (c==39)) {
word++;
}
else if (c=='\n') {
line++;
}
}
printf("%lu %lu %lu\n", countchar, word, line);
return 0;
}