strcmp在c语言中的意思是string compare的缩写,用于比较两个字符串并根据比较结果返回整数,基本形式为strcmp(str1,str2),若【str1=str2】,则返回零,若【str1<str2】,则返回负数。

strcmp在c语言中的意思是:

strcmp函数是string compare(字符串比较)的缩写,用于比较两个字符串并根据比较结果返回整数。基本形式为strcmp(str1,str2),若str1=str2,则返回零;若str1<str2,则返回负数;若str1>str2,则返回正数。

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

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

当s1>s2时,返回正数。

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

1."A"<"B"

2."A"<"AB"

3."Apple"<"Banana"

4."A"<"a"

5."compare"<"computer"

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

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

  • 当两个字符串不相等时,C标准没有规定返回值会是1 或 -1,只规定了正数和负数。

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

代码:

#include <string.h>#include <memcopy.h>#undef strcmpint strcmp(p1,p2){    const char *p1;        const char *p2;        register const unsignedchar *s1=(const unsignedchar*)p1;        register const unsignedchar *s2=(const unsignedchar*)p2;        unsigned reg_charc1,c2;     do    {        c1=(unsigned char)*s1++;                c2=(unsigned char)*s2++;                if(c1=='\0')                    returnc1-c2;         }     while(c1==c2);            return c1-c2;        }     libc_hidden_builtin_def(strcmp)//以上代码是K&R C规范的,ASCI C的在下面 /*strcmp function*/#include <string.h> int(strap)(const char *sl,const char *s2){    /*compare unsigned char sl[],s2[]*/    for(;*sl==*s2;++sl,++s2)        if(*sl=='\0')            return(0);    return((*(unsignedchar*)sl<*(unsignedchar*)s2)?-1:+1);}

相关学习推荐:C视频教程

更多相关文章

  1. c语言如何统计字符串中每个字符出现的次数?
  2. C语言中字符串连接函数是什么
  3. 字符数组表示字符串的注意事项是什么
  4. C语言中字符串的结束标志是什么
  5. C语言字符串输出函数puts()的作用是什么
  6. golang判断字符串是否为空的方法
  7. golang判断字符串是否数字的方法
  8. golang中如何比较字符串是否相等
  9. golang 怎么拼接字符串

随机推荐

  1. 详细介绍JavaBean和XML互转工具类
  2. XML和Schema命名空间的具体实例代码分享
  3. XML文件使用SAX方法读取的示例代码
  4. XML字符转Map工具类的示例代码分享
  5. 详细介绍XML原理代码实例
  6. 解析XML文件的几种方式对比的详细介绍
  7. XML和Schema命名空间的详细介绍
  8. 详解XML- JAXP技术-DOM解析
  9. xml解析-增删改查操作后将其修改结果保存
  10. 详细介绍soap相关的xml知识