是否有一个标准C函数会比较两个C字符串,并返回一个指向不同的第一个字符的指针,如果字符串相等则返回NULL?获取指针,指向两个C字符串之间不同的第一个字符
#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;
}
该函数不会返回指针,而是返回一个字符索引。 – Dai
我在C的参考文献 – Victor
中找不到'strdiffchr'我猜这就是OP所要找的。 – bagage