Как бы вы могли подсчитать длину слов и вывести их вхождения из строки с помощью gets()
или fgets()
? Например, здесь используется код, но с использованием getchar()
ниже. Я думаю, что записать его в gets()
упростит включение всех разделителей в программу, вместо того, чтобы вручную установить, будут ли утверждения для каждого из них это не так?C Программирование: подсчет длины слов в строке
#include <string.h>
#include <ctype.h>
const char delim[] = ", . - !*()&^%$#@<> ? []{}\\/\"";
#define SIZE 100
int main(void){
int length[SIZE] = { 0 };
int name[SIZE];
int i = 0, ch, word_len = 0;
int count = 0;
printf("enter sentence: ");
while (1){
ch = getchar();
if (isalpha(ch)){
++word_len;
}
else if (ch == ' ' || ch == '.'){
if (word_len)
length[word_len - 1]++;//-1: to 0 origin
if (ch == '.')
break;
word_len = 0;
}
}
printf("Word Length \tCount \n");
for (i = 0; i<sizeof(length)/sizeof(*length); ++i){
if (length[i])
printf(" %d \t\t%d\n", i + 1, length[i]);
}
return 0;
}
'else if (strchr (delim, ch)) {' может удовлетворить потребность. (вместо 'else if (ch == '' || ch == '.') {') – chux