Изменить программу, чтобы она выводила только количество слов? - C (СИ)

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

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

#include <stdio.h>
 
int main()
{
    char ch, flag=-1;
    unsigned c=0, n=0, w=0;
 
    while ((ch = getchar()) != EOF) {
        if (ch == '\n')
        n++;
        else
        c++; // znaky
 
        if (ch == ' ' || ch == '\n') flag = -1; // slova
        else
            if (flag == -1) {
                flag = 1;
                w++;
            }
    }
 
    printf("%u %u %u\n", c, n, w);
}
Здесь выводятся слова, пробелы и строки, как изменить программу чтобы выводило

только

КОЛИЧЕСТВО СЛОВ?

Решение задачи: «Изменить программу, чтобы она выводила только количество слов?»

textual
Листинг программы
#include <stdio.h>
#include <string.h>
 
int words_count(char * str, const char * delim) {
    return ( strtok(str, delim) ) ? 1 + words_count(NULL, delim) : 0;
}
 
int main(void) {
    char buf[BUFSIZ];
    
    while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' )
        printf("%d word(s).\n", words_count(buf, " \t\n"));
        
    return 0;
}

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


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

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

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