这个函数是用于比较字符串中字符值的大小的、从第一个字符开始比较,对相比较的两个字符串的第一个字符s1、s2;
创新互联主营正宁网站建设的网络公司,主营网站建设方案,app软件开发,正宁h5微信平台小程序开发搭建,正宁网站营销推广欢迎正宁等地区企业咨询
当s1s2时,返回值0
当s1s2时,返回值0
,若相等,则继续比较。如果两个字符串相等,则返回值为0
从左到右,依次比较字母的ASCII码的大小,遇到不同字符或'\0'结束。
基本形式:strcmp(str1,str2)
str1=str2时,返回零;str1str2时,返回负数;str1str2时,返回正数。
比如Apple和Banana比较,先比较第一个字母A和B,A的ASCII码是65,B的是66,所以AppleBanana。
compare和computer比较,前4个字母相同,第五个字母a和u,a的ASCII码是97,u的是117,所以comparecomputer。
扩展资料:
特别注意:
strcmp(const char *s1,const char * s2)这里面只能比较字符串,即可用于比较两个字符串常量,或比较数组和字符串常量,不能比较数字等其他形式的参数。
ANSI标准规定,返回值为正数,负数,0 。而确切数值是依赖不同的C实现的。
1、当两个字符串不相等时,C标准没有规定返回值会是1 或 -1,只规定了正数和负数。
2、有些会把两个字符的ASCII码之差作为比较结果由函数值返回。但无论如何不能以此条依据作为程序中的流程逻辑。
(1)strcmp是比较两个字符串的大小,两个字符串相同时返回0,第一个字符串大于第二个字符串时返回一个正值,否则返回负值.
(2)比较两个字符串的算法是:逐个比较两个串中对应的字符,字符大小按照ASCII码值确定,从左向右比较,如果遇到不同字符,所遇第一对不同字符的大小关系就确定了两个字符串的大小关系,如果未遇到不同字符而某个字符串首先结束,那么这个字符串是较小的,否则两个字符串相等。
扩展资料:
通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。
两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为 s=“a1a2···an”(n=0)。它是编程语言中表示文本的数据类型。在程序设计中,字符串(string)为符号或数值的一个连续序列,如符号串(一串字符)或二进制数字串(一串二进制数字)。
字符串数据类型是建模在形式字符串的想法上的数据类型。字符串是几乎在所有编程语言中可以实现的非常重要和有用的数据类型。
在某些语言中它们可作为基本类型获得,在另一些语言中做为复合类型获得。多数高级语言的语法允许通常用某种方式引用起来的字符串来表示字符串数据类型的实例;这种元字符串叫做“文本”或“字符串文本”。
尽管形式字符串可以有任意(但有限)的长度,实际语言的字符串的长度经常被限制到一个人工极大值。一般的说,有两种类型的字符串数据类型: “定长字符串”,它有固定的极大长度并且不管是否达到了这个极大值都使用同样数量的内存,和“变长字符串”,它的长度不是专断固定的并且依赖于实际的大小使用可变数量的内存。
参考资料:百度百科——字符串
#includestring.h
#includestdio.h
void main()
{
char str1={"abc"},str2={"485afsd"};
if(strcmp(str1,str2)0) printf("yes");
} 去掉个o就可以了,楼主要多看看编译器的使用方法,是什么错误在下方是有提示的
在C语言中比较字符串大小,可以使用库函数strcmp,也可以自己编写比较函数。
1、使用库函数。
需要包含头文件string.h。声明为:
int strcmp(const char *s1, const char *s2);
会根据字典序比较s1和s2, 如果二者相等,则返回0;如果s1较小则返回-1;如果s1较大则返回1。
比如
strcmp("123", "123") 结果为0。
strcmp("123", "456") 结果为-1。
strcmp("456", "123") 结果为1。
2、自定义函数。
实现字符串比较的方法有很多,其基本原理为按字节比较。
举例如下:
int my_strcmp(char *s1, char *s2)
{
int i;
for(i = 0; s1[i] == s2[i] s1[i]!=0; i++);//循环比较,达到结束或者出现不相等值时退出循环。
if(s1[i] == s2[i]) return 0;//代表全部相等,返回0
if(s1[i]s2[i]) return -1;//s1较小,返回-1。
return 1;//s1较大,返回1.
}
比较字符可以直接使用==比较操作符,如:
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个字符开始的内容