我想寫一個簡單的C程序來輸出字的長度並輸出它們的頻率。例如,如果用戶輸入「hey」,我的程序將輸出字長:3出現次數1,等等,輸入一個更大的字符串。我似乎無法正確地循環它。我想在設置兩個計數器的時候,看到分隔符的時間長度和它的出現時間,但是我還沒有找到一種方法讓它工作。我如何修復我的循環?我的代碼如下。我會很感激任何幫助。我應該包括我的程序只能正確運行一個字輸入,而不是一個完整的句子或多個句子。C程序中的字長度頻率
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
const char delim[] = ", . - !*()&^%$#@<> ? []{}\\/\"";
const int n_delim = 31;
#define SIZE 1000
int is_delim(int c);
int main(){
char string[SIZE];
int wordlength = 0, wl[SIZE];
int word = 0, i;
printf("Enter your input string:");
fgets(string, SIZE, stdin);
string[strlen(string) - 1] = '\0';
printf("Word Length\tCount\n");
int seen = 0;
int l;
for (i = 0; i < strlen(string); i++){
if (is_delim(string[i])){
wl[word++] = wordlength;
l = wordlength;
seen++;
printf("%d\t\t%d\n", l, seen);
wordlength = 0;
}
wordlength++;
}
return 0;
}
int is_delim(int c){
register int i;
for (i = 0; i < n_delim; i++)
if (c == delim[i]) return 1;
return 0;
}
這段代碼甚至沒有編譯,你從不在任何地方聲明'i'。 – Linus
抱歉我的錯誤會立即修復它。 – Benny
你也從來不會在任何地方使用'wl',如果你用'Wall'編譯,你會看到這些東西。 – Linus