c - 文本文件中每个单词的频率。分配内存时出错?

标签 c string pointers malloc

大家晚上好! 我开始摆弄 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;
}

我运行此程序时遇到几个错误...出了什么问题? 考虑到在words[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;
}

关于c - 文本文件中每个单词的频率。分配内存时出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34828889/

相关文章:

c++ - 如何在opencv2.1中使用opencv2.3头文件

c - 为什么C要在<math.h>中定义M_2_SQRTPI常量?

c++ - 使用 std 容器(如 vector 、列表、队列等)的稳定内存地址

c - 如何将指针指向的 textf 的内容复制到 char 数组(即指针 -> char 数组)

c - 测量耗时

c - 具有两个应用程序的 C 中的共享库

python - sum(1 for c in sentence if c.isupper())) 在非编程术语中是什么意思

c++ - 动态字符串数组

javascript - 如何用 RegEx 找到的变量名替换 RegEx?

c++ - C++ 中的多态返回类型