任何人都可以解释strcmp中用什么算法来比较C编程中的两个字符串?
我不明白这个返回值,它使用任何算法,如' Levenstien算法 '来找出两个字符串之间的距离......
标准C库的GNU实现glibc是开源的,如果你很好奇,你可以阅读strcmp.c.没有多少.这里是:
/* Compare S1 and S2, returning less than, equal to or
greater than zero if S1 is lexicographically less than,
equal to or greater than S2. */
int strcmp (const char *p1, const char *p2)
{
register const unsigned char *s1 = (const unsigned char *) p1;
register const unsigned char *s2 = (const unsigned char *) p2;
unsigned reg_char c1, c2;
do
{
c1 = (unsigned char) *s1++;
c2 = (unsigned char) *s2++;
if (c1 == '\0')
return c1 - c2;
}
while (c1 == c2);
return c1 - c2;
}
Run Code Online (Sandbox Code Playgroud)