是否有标准的C函数可以比较两个C字符串,并返回第一个不同字符的指针,如果字符串相等则返回NULL?
#include <stdio.h>
int main()
{
const char *p, *s1 = "foobar", *s2 = "foobaz";
p = strdiffchr(s1, s2);
if (!p)
puts("the strings are equal");
else
printf("s1 has %c, where s2 has %c\n", *p, s2[p - s1]);
return 0;
}
编辑:我选择了以下解决方案:
char *strdiffchr(const char *s1, const char *s2)
{
while (*s1 && *s1 == *s2) {
s1++;
s2++;
}
return (*s1 == *s2) ? NULL : (char *)s1;
}
strdiffchr
。 - Victor