所以我创建了一个包含一堆单词的文件,我的程序应该打开文件,将所有单词放入一个数组中,然后比较字符串以查看是否有完全匹配的字符串。它打开文件并填充数组,但是当我尝试比较字符串时问题就来了。谁能告诉我如何解决为什么这不能正确比较?
我的话文件:
Google Twitter Facebook Twitter gmail Flyer city
phone Google cookie Facebook Flyer grill fork silver tornado dirty
blue grill lemon
代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(void)
{
FILE *words;
char words_array[20][17];
int x=0;
int y=0;
int pairs = 0;
words=fopen("words.dat","r");
if(words==NULL)
printf("\n\nwords.dat was not properly opened.\n");
else
{
for(x = 0 ; x < 20 ; x++ )
{
fscanf(words,"%s",&words_array[x][y]);
}
fclose(words);
for(x = 0 ; x < 20 ; x++ )
printf("Word #%d is %s \n", x + 1, words_array[x]);
/*start of comparison*/
for(x=0;x<20;x++)
{
for(y=0;y<20;y++)
{
if (strcmp (words_array[x], words_array[x+1])==0)
pairs++;
}
/*end of comparisons*/
}
printf("%d \n",pairs);
}
return(0);
}
输出:
Word #1 is Google
Word #2 is Twitter
Word #3 is Facebook
Word #4 is Twitter
Word #5 is gmail
Word #6 is Flyer
Word #7 is city
Word #8 is phone
Word #9 is Google
Word #10 is cookie
Word #11 is Facebook
Word #12 is Flyer
Word #13 is grill
Word #14 is fork
Word #15 is silver
Word #16 is tornado
Word #17 is dirty
Word #18 is blue
Word #19 is grill
Word #20 is lemon
0