strcmp 函数的用法 及其实现

原型:extern int strcmp(const char *s1,const char * s2);

所在头文件:string.h

功能:比较字符串s1s2

一般形式:strcmp(字符串1,字符串2)

说明:

s1<s2时,返回值<0

s1==s2时,返回值=0

s1>s2时,返回值>0

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

特别注意:strcmp(const char *s1,const char * s2)这里面只能比较字符串,不能比较数字等其他形式的参数。

2.函数源码

int __cdecl strcmp (

const char * src,

const char * dst

)

{

              Int ret = 0 ;

              while( ! (ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst&&*src)

              ++src, ++dst;

              if ( ret < 0 )

               ret = -1 ;

               else if ( ret > 0 )

                ret = 1 ;

                return( ret );

}

3.

一种实现:

C代码 复制代码  收藏代码
  1. #include<stdio.h>   
  2.   
  3. int strcmp(const char *str1,const char *str2)   
  4. {   
  5.     /* 注释以下的五行(while循环)可以简写为:  
  6.      * for(;(*str1==*str2)&&*str1!='\0';str1++,str2++);  
  7.      *  */  
  8.     while((*str1==*str2)&&*str1!='\0')   
  9.     {   
  10.         str1++;   
  11.         str2++;   
  12.     }   
  13.   
  14.     if(*str1=='\0'&&*str2=='\0'return 1;   
  15.     else return -1;   
  16. }   
  17.   
  18. int main()   
  19. {   
  20.     char *st1="abdefg";   
  21.     char *st2="abcdefg";   
  22.     printf("%d\n",strcmp(st1,st2));   
  23.   
  24.     char *st3="12345";   
  25.     char *st4="12345";   
  26.     printf("%d\n",strcmp(st3,st4));   
  27.   
  28.     return 0;   
  29. }  

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值