C语言 文本文件每个单词的频率.分配内存时出错



大家晚上好!我已经开始在 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;
}

相关内容

  • 没有找到相关文章

最新更新