C 尝试比较2d数组中的字符串
所以我创建了一个文件,里面有一堆单词,我的程序应该打开这个文件,把所有的单词放在一个数组中,然后比较字符串,看看是否有完全匹配的。它打开文件并填充数组,但当我试图比较字符串时,问题出现了。。有人能告诉我如何着手修复为什么这不能正确比较吗 我的文字档案:C 尝试比较2d数组中的字符串,c,arrays,string,strcmp,C,Arrays,String,Strcmp,所以我创建了一个文件,里面有一堆单词,我的程序应该打开这个文件,把所有的单词放在一个数组中,然后比较字符串,看看是否有完全匹配的。它打开文件并填充数组,但当我试图比较字符串时,问题出现了。。有人能告诉我如何着手修复为什么这不能正确比较吗 我的文字档案: Google Twitter Facebook Twitter gmail Flyer city phone Google cookie Facebook Flyer grill fork silver tornado dirty blue
Google Twitter Facebook Twitter gmail Flyer city
phone Google cookie Facebook Flyer grill fork silver tornado dirty
blue grill lemon
代码:
您只是将当前行与下一行进行比较。使用strcmp将环路更改为:
for(x=0; x<20; x++) {
for(y=x+1; y<20; y++) {
if (strcmp (words_array[x], words_array[y])==0)
pairs++;
}
}
另一方面,您可能希望在程序开头(在#includes和main之间)添加一个定义的行数常量,这样,如果要更改读取的行数(当然,对于字长也可以这样说),就不必到处替换20
:
然后你可以在你现在有20和17的任何地方使用这些常数。@nom_nutella乐意帮忙:)
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
for(x=0; x<20; x++) {
for(y=x+1; y<20; y++) {
if (strcmp (words_array[x], words_array[y])==0)
pairs++;
}
}
Google
Twitter
Facebook
Flyer
grill
#define MAXLINES 20
#define MAXLENGTH 17