本文目录一览:
C语言如何比较两个【字符】或者【字符串】是否相等?迷糊了,求解答
比较字符可以直接使用==比较操作符,如:
char c1='a',c2='b';
if(c1==c2) printf("%c is same as %c.",c1,c2);
else printf("%c is different to %c",c1,c2);
若是字符串,则需要使用字符串函数了,strcmp
char s1[]="abc",s2[]="xyz";
if(strcmp(s1,s2)==0) printf("%s is same as %s.",s1,s2);
也可以忽略大小写来比较,使用函数stricmp 中间的i意思是ignore case sensitive
还可以指定长度比较,strncmp,如:
char s1[]="abc",s2[]="abcdefg";
if(strncmp(s1,s2,3)==0) printf("first 3 characters are same");
若不是从开头位置开始比较,如:
char s1[]="abc",s2[]="xyzabc"
if(strncmp(s1,s2[3],3)==0) 就是比较s1和s2的第3个字符开始的内容
c语言怎么判断两个字符串是否一样
可以使用strcmp函数,其包含在string.h中。
原型:extern int strcmp(char *s1,char * s2);
用法:#include string.h
功能:比较字符串s1和s2
说明:当s1s2时,返回值0;当s1=s2时,返回值=0;当s1s2时,返回值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;
}
运行结果
C语言中判断两个字符串是否相同的方法
两个字符串相同的定义是:1.它们的每个位置对应的字符相同
2.字符串的长度相同
二者缺一不可
C++中如何判断两个字符串是否相等?
C语言中比较两个字符串是否相等的方法是使用strcmp函数。
它的形式是:strcmp(str1, str2) == 0(成立则两个字符串相等),它需要在编译器开头加上#includestring.h头文件。它的作用是接受两个参数,并用前者去减后者。如果为0就是相等。如果负数,前者在ASCLL表的代码比后者小。举例:
#includestdio.h
#includestring.h
int main()
{
char str1[] = "123456";
char str2[] = "123456";
if (strcmp(str1, str2) == 0) //这一步开始比较两个字符串是否相等。
printf("这两个字符串相等.");
else printf("这两个字符串不相等");
return 0;
}
输出结果为:
扩展资料:
一、函数的实现原理:向strcmp()函数中传入两个字符串(记为str1,str2).传入之后,通过把str1的各字母的ASCII码值和str2的各字母的ASCII码值进行比较。若str1str2则返回正数,若str1=str2则返回0,否则,则返回负数。
二、函数使用规则:
当s1s2时,返回为负数;当s1==s2时,返回值= 0;当s1s2时,返回正数。即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:
"A""B" "a""A" "computer""compare"
特别注意:strcmp(const char *s1,const char * s2)这里面只能比较字符串,即可用于比较两个字符串常量,或比较数组和字符串常量,不能比较数字等其他形式的参数。ANSI标准规定,返回值为正数,负数,0 。而确切数值是依赖不同的C实现的。
参考资料:strcmp函数-百度百科