strcmp()函数怎么用?

如题所述

字符串比较函数,一般形式为strcmp(字符串1,字符串2)。


比较规则:


对两个字符串自左至右逐个字符相比(按ASCII码值大小比较),直到出现不同的字符或遇到‘\0’为止。如果全部字符相同,则认为相等;若出现不相同的字符,则以第一个不相同的字符的比较结果为准。


如果两个字符串都由英文字母组成,则有一个简单的规律:在英文字典中位置在后面的为“大”,还要特别注意:小写字母比大写字母“大”。


返回值:


(1)字符串1=字符串2,返回0


(2)字符串1>字符串2,返回一个正整数


(3)字符串1<字符串2,返回一个负整数。

扩展资料:


规则

当s1<s2时,返回为负数;

当s1==s2时,返回值= 0;

当s1>s2时,返回正数。

即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:

"A"<"B" "a">"A" "computer">"compare"

特别注意:strcmp(const char *s1,const char * s2)这里面只能比较字符串,即可用于比较两个字符串常量,或比较数组和字符串常量,不能比较数字等其他形式的参数。

ANSI标准规定,返回值为正数,负数,0 。而确切数值是依赖不同的C实现的。

Return Value

Returns an integral value indicating the relationship between the strings:

return value<0 the first character that does not match has a lower value inptr1than inptr2

return value=0 the contents of both strings are equal

return value>0 the first character that does not match has a greater value inptr1than inptr2

当两个字符串不相等时,C标准没有规定返回值会是1 或 -1,只规定了正数和负数。有些实现会返回1或-1,但将返回值与1或-1做比较的人,都是不合格的程序员。

有些会把两个字符的ASCII码之差作为比较结果由函数值返回。但无论如何不能以此条依据作为程序中的流程逻辑。

参考资料:百度百科-strcmp

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-07-24
首先,要用这个函数,需要预包含头文件<string.h>,其次、这是两个字符串比较函数其原型为:int strcmp(char *str1, char *str2);当str1>str2时,返回一个正数;当str1<str2时,返回一个负数;当str1=str2时,返回0。最后应该注意的是:两个字符串比较时,是按asiic码大小逐个比较的,当发现某一个大或者小时,就停止比较、返回一个值。否则比较到最后一个字母。
第2个回答  2012-07-24
此函数用于比较两个字符串是否相同。返回值为0,表示两个字符串是相同的。
下面是msdn中的例子
char string1[] = "The quick brown dog jumps over the lazy fox";
char string2[] = "The QUICK brown dog jumps over the lazy fox";
int result = strcmp( string1, string2 );
if ( result == 0 )
{
// string1与string2相同
}
第3个回答  2012-07-24
字符串对比函数,
定义两个字符串,
char s1[]="ndajsj",s2[]="sbnu";
用该函数对比,strcmp(s1,s2);当s1,s2完全一样时返回值为零,其他不为零,详细参照书籍或者百度百科,
也可以这样用
strcmp("snada","dnd");是两个字符串直接对比,
第4个回答  2021-03-23
strcmp(s1,s2)是字符串比较函数,比较规则是俩个字符串自左向右逐个字符相比(按ASCII码值大小),以第一个不相同的大小作为比较结果。
当s1等于s2时,返回0;
当s1大于s2时,为正整数;
当s1小于s2时,为负整数。
相似回答