计数器不应该到达' \ 0'在第1行和第2行,这两种方式都不能相互不同,所以函数跳过条件并返回1?
int funcX(const char *, const char *);
int main()
{
char string1[40] = "line1",
string2[40] = "line2";
cout << funcX(string1, string2) << endl << endl;
cin >> string1;
return 0;
}
int funcX(const char *s1, const char *s2)
{
for (; *s1 != '\0' && *s2 != '\0'; s1++, s2++) {
cout << *s1 << " " << *s2<<endl;
if (*s1 != *s2) {
return 0;
}
}
return 1;
}
答案 0 :(得分:0)
该函数返回0
,因为*s1 != *s2
位于第五个字符(*s1=='1'
,*s2=='2'
)。循环永远不会达到第六个(null,'\0'
)字符。
Looking at the output,您可以看到在该索引处,两个char
是不同的。