大家晚上好!我已经开始在 C 中弄乱字符串和指针。我想编写一个读取文本文件的程序,然后计算每个单词的频率并打印它。
我的变量是:
FILE *fp;
char *words[N] //N defined 100
int i=0, y=0;
int *freq;
int freq_count=0;;
int word_number=0;
代码部分:
for(i=0;i<word_counter;i++){
while(y<word_counter){
if(strcmp(words[i],words[y]==0){
freq1++;
} y++;
}
if(i==0){
freq=(int*)malloc(sizeof(int));
strcpy(freq, freq1); freq1=0;
}
else{
freq=(int*)realloc(freq, (i+1)*sizeof(int));
strcpy(freq, freq1); freq1=0;
}
y=0;
}
我在运行这个时遇到几个错误...怎么了? 考虑到在单词[N]中,我将文本的每个单词单独放在每个单元格中。
提前谢谢大家。
也许另一个数组不是你想要的,但仍然比在循环中使用realloc
和条件要好。
int freq[N];
for(i=0;i<word_counter;i++){
freq1 = 0;
for(y=0;y<word_counter;y++){
if(strcmp(words[i],words[y]==0)
freq1++;
}
freq[i] = freq1;
}