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

2024-11-18 02:52:33
推荐回答(1个)
回答1:

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

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

  2. 用法:#include

  3. 功能:比较字符串s1和s2

  4. 说明:当s1s2时,返回值>0

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

#include 
#include 

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;
}

运行结果