Изменить программу, чтобы она выводила только количество слов? - 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;
}