⑴ c语言中判断两个字符串是否相同的方法
C语言提供了几个标准库函数,可以比较两个字符串是否相同。以下是用strcmp()函数比较字符串的一个例子:
#include <stdio. h>
#include <string. h>
void main (void);
void main(void)
{
char* str_1 = "abc" ; char * str_2 = "abc" ; char* str_3 = "ABC" ;
if (strcmp(str_1, str_2) == 0)
printf("str_1 is equal to str_2. \n");
else
printf("str_1 is not equal to str_2. \n");
if (strcmp(str_1, str_3) == 0)
printf("str_1 is equal to str_3.\n");
else
printf("str_1 is not equalto str_3.\n");
}
上例的打印输出如下所示:
str_1 is equal to str_2.
str_1 is not equal to str_3.
strcmp()函数有两个参数,即要比较的两个字符串。strcmp()函数对两个字符串进行大小写敏感的(case-sensitiVe)和字典式的(lexicographic)比较,并返回下列值之一:
----------------------------------------------------
返 回 值 意 义
----------------------------------------------------
<0 第一个字符串小于第二个字符串
0 两个字符串相等 ·
>0 第一个字符串大于第二个字符串
----------------------------------------------------
在上例中,当比较str_1(即“abc”)和str_2(即“abc”)时,strcmp()函数的返回值为0。然而,当比较str_1(即"abc")和str_3(即"ABC")时,strcmp()函数返回一个大于0的值,因为按ASCII顺序字符串“ABC”小于“abc”。
strcmp()函数有许多变体,它们的基本功能是相同的,都是比较两个字符串,但其它地方稍有差别。下表列出了C语言提供的与strcmp()函数类似的一些函数:
-----------------------------------------------------------------
函 数 名 作 用
-----------------------------------------------------------------
strcmp() 对两个字符串进行大小写敏感的比较
strcmpi() 对两个字符串进行大小写不敏感的比较
stricmp() 同strcmpi()
strncmp() 对两个字符串的一部分进行大小写敏感的比较
strnicmp() 对两个字符串的一部分进行大小写不敏感的比较
-----------------------------------------------------------------
在前面的例子中,如果用strcmpi()函数代替strcmp()函数,则程序将认为字符串“ABC”等于“abc”。
⑵ 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
说明:当s1<s2时,返回值<0;当s1=s2时,返回值=0;当s1>s2时,返回值>0
也可以自己编写一个函数。
#include<stdio.h>
#include<string.h>
intmain(){
char*s1A="abc",*s1B="abc";
char*s2A="abcd",*s2B="abcde";
puts("使用strcmp函数");
printf("s1A=%s、s1B=%s ",s1A,s1B);
if(strcmp(s1A,s1B)==0)
printf("s1A与s1B相同! ");
else
printf("s1A与s1B不同! ");
putchar(' ');
printf("s2A=%s、s2B=%s ",s2A,s2B);
if(strcmp(s2A,s2B)==0)
printf("s2A与s2B相同! ");
else
printf("s2A与s2B不同! ");
putchar(' ');
puts("使用自定义strCompar函数");
printf("s1A=%s、s1B=%s ",s1A,s1B);
if(strCompar(s1A,s1B)==1)
printf("s1A与s1B相同! ");
else
printf("s1A与s1B不同! ");
putchar(' ');
printf("s2A=%s、s2B=%s ",s2A,s2B);
if(strCompar(s2A,s2B)==1)
printf("s2A与s2B相同! ");
else
printf("s2A与s2B不同! ");
putchar(' ');
return0;
}
/*两字符串相同返回1;不同返回0*/
intstrCompar(char*s1,char*s2){
while(*s1||*s2){
if(*s1++!=*s2++)
return0;
}
return1;
}
运行结果
⑷ C语言编程:从键盘上输入两个字符串,判断两个字符串是否相等。
3个错误:
1,输入的时候把%s之间的逗号去掉,才可以输入2个字符串;
2,str1[j]=='\0'&&str2[j]=='\0'这个条件满足时,证明字符串相等,应该把flag置为1;反之,应该置为0;
3,main()函数没有指明类型,比如void
main();
⑸ C语言比较两个字符串相等的问题,请人详细讲解
C语言字符串是一系列字符,也就是char类型排列而成的。一个字符是char类型,一系列字符如何表示?用他们的第一个字符的地址表示,因为字符串在地址上也是连续排列的。并且用\0,在物理上是一个字节的全0位,来表示字符串结束。所以"abcde",空间上是'a'
'b'
'c'
'd'
'e'
'\0'strcmp的参数都是char*,也就是指向字符的指针,原理是从两个指针指向的地址开始对比,直到其中一个\0为止。判断相等与否。实现上是每个字符相减。单纯的==,比较的是字符串手地址是否相等,这样比较,不但比较不了两个字符串相等与否,而且要想相等,还必须两个字符串指向同一个地址。
⑹ C语言中如何比较两个【字符】或者【字符串】是否相等
C语言中用strcmp函数比较字符和字符串是否相等。
strcmp函数功能是比较两个字符串的大小,返回比较的结果。
函数形式:strcmp(str1,str2)
参数说明:str1,str2可以是字符串常量或变量。
结果说明:
①返回值小于0,说明str1小于str2。
②返回值等于0,说明str1与str2相等。
③返回值大于0,s说明str1大于str2。
⑺ c语言中怎样判断两字符相等
通过==方式进行判断,==是比较,可以比较字符,数字值等等。
举例:
chars1='c';//定义一个字符变量s1,内容是c
chars2='d';//定义一个字符变量s2,内容是d
if(s1==s2){//通过==判断是否相同
//相等
}
⑻ C++中如何判断两个字符串是否相等
C语言中比较两个字符串是否相等的方法是使用strcmp函数。
它的形式是:strcmp(str1, str2) == 0(成立则两个字符串相等),它需要在编译器开头加上#include<string.h>头文件。它的作用是接受两个参数,并用前者去减后者。如果为0就是相等。如果负数,前者在ASCLL表的代码比后者小。举例:
#include<stdio.h>
#include<string.h>
int main()
{
char str1[] = "123456";
char str2[] = "123456";
if (strcmp(str1, str2) == 0) //这一步开始比较两个字符串是否相等。
printf("这两个字符串相等.");
else printf("这两个字符串不相等");
return 0;
}
输出结果为:
(8)c语言两个字符串内容是否相等扩展阅读:
一、函数的实现原理:向strcmp()函数中传入两个字符串(记为str1,str2).传入之后,通过把str1的各字母的ASCII码值和str2的各字母的ASCII码值进行比较。若str1>str2则返回正数,若str1=str2则返回0,否则,则返回负数。
二、函数使用规则:
当s1<s2时,返回为负数;当s1==s2时,返回值= 0;当s1>s2时,返回正数。即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'