在我的教科书中有一个叫做streq
检查字符串是否相等的函数。我复制了这段代码,并决定cout << *s1 << endl;
在返回 false 之前添加以查看它打印出来的内容。但是,我注意到如果两个输入字符串相等并且我添加了额外的代码,它将返回 false。
#include <iostream>
using namespace std;
bool streq(const char* s1, const char* s2);
int main()
{
const char A [] = "Hello";
const char B [] = "Hello";
cout << streq(A,B) << endl;
}
bool streq(const char* s1, const char* s2)
{
int count = 0;
while (*s1 != 0 && *s2 != 0)
if (*s1++ != *s2++)
cout << *s1 << endl;
return false;
count++;
return (*s1 == *s2);
}
但是,如果我注释掉我添加的代码,该函数将正常工作并返回 true (1)。有谁知道这里的问题是什么?