c语言怎么判断两个字符串是否一样

如题所述

可以使用strcmp函数,其包含在string.h中。

    原型:extern int strcmp(char *s1,char * s2);

    用法:#include <string.h>

    功能:比较字符串s1和s2

    说明:当s1<s2时,返回值<0;当s1=s2时,返回值=0;当s1>s2时,返回值>0

也可以自己编写一个函数。

#include <stdio.h>
#include <string.h>

int main() {
char *s1A="abc",*s1B="abc";
char *s2A="abcd",*s2B="abcde";

puts ("使用strcmp函数");
printf ("s1A=%s、s1B=%s\n",s1A,s1B);
if (strcmp (s1A,s1B) == 0)
printf ("s1A与s1B相同!\n");
else
printf ("s1A与s1B不同!\n");
putchar('\n');

printf ("s2A=%s、s2B=%s\n",s2A,s2B);
if (strcmp (s2A,s2B) == 0)
printf ("s2A与s2B相同!\n");
else
printf ("s2A与s2B不同!\n");
putchar('\n');

puts ("使用自定义strCompar函数");
printf ("s1A=%s、s1B=%s\n",s1A,s1B);
if (strCompar (s1A,s1B) == 1)
printf ("s1A与s1B相同!\n");
else
printf ("s1A与s1B不同!\n");
putchar('\n');

printf ("s2A=%s、s2B=%s\n",s2A,s2B);
if (strCompar (s2A,s2B) == 1)
printf ("s2A与s2B相同!\n");
else
printf ("s2A与s2B不同!\n");
putchar('\n');

return 0;
}

/*两字符串相同返回1;不同返回0*/
int strCompar (char *s1, char *s2) {
while (*s1||*s2) {
if (*s1++!=*s2++)
return 0;
}
return 1;
}

运行结果

追答

最初回答中的自定义函数写错了!现已修正!题主在电脑端的页面上看到的就是最新正确的内容了!

温馨提示:答案为网友推荐,仅供参考
相似回答