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