大家晚上好! 我已经开始用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]中我已经将每个单词放在每个单元格中。
提前谢谢大家。
答案 0 :(得分:1)
也许另一个数组不是你想要的,但仍然比在循环中使用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;
}