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

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

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

Листинг программы
  1. #include <stdio.h>
  2. int main()
  3. {
  4. char ch, flag=-1;
  5. unsigned c=0, n=0, w=0;
  6. while ((ch = getchar()) != EOF) {
  7. if (ch == '\n')
  8. n++;
  9. else
  10. c++; // znaky
  11. if (ch == ' ' || ch == '\n') flag = -1; // slova
  12. else
  13. if (flag == -1) {
  14. flag = 1;
  15. w++;
  16. }
  17. }
  18. printf("%u %u %u\n", c, n, w);
  19. }
Здесь выводятся слова, пробелы и строки, как изменить программу чтобы выводило

только

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

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

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

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


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

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

8   голосов , оценка 4.125 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы