我找到了一个与之相同的功能strcmp但我无法看到比较s1 == s2发生的位置.我需要帮助.谢谢.
int MyStrcmp (const char *s1, const char *s2)
{
int i;
for (i = 0; s1[i] != 0 && s2[i] != 0; i++)
{
if (s1[i] > s2[i])
return +1;
if (s1[i] < s2[i])
return -1;
}
if (s1[i] != 0)
return +1;
if (s2[i] != 0)
return -1;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果s1 == s2,这也意味着两个字符串的长度相等.记住这一点,通过for循环,循环中的if语句都不是真的.因此,我们将for循环转义为s1[i] = s2[i] = 0,并i设置为给定的字符串的长度.现在对于剩余的两个if语句,没有任何条件为真s1[i] = s2[i] = 0.因此代码返回0.