Life is Good.

Enhance Tech and English
随笔 - 65, 文章 - 20, 评论 - 21, 引用 - 0
数据加载中……

4 - strcmp

/***
*strcmp - compare two strings, returning less than, equal to, or greater than
*
*Purpose:
*       STRCMP compares two strings and returns an integer
*       to indicate whether the first is less than the second, the two are
*       equal, or whether the first is greater than the second.
*
*       Comparison is done byte by byte on an UNSIGNED basis, which is to
*       say that Null (0) is less than any other character (1-255).
*
*Entry:
*       const char * src - string for left-hand side of comparison
*       const char * dst - string for right-hand side of comparison
*
*Exit:
*       returns -1 if src <  dst
*       returns  0 if src == dst
*       returns +1 if src >  dst
*
*Exceptions:
*
******************************************************************************
*/

int __cdecl strcmp (
        
const char * src,
        
const char * dst
        )
{
        
int ret = 0 ;

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

        
if ( ret < 0 )
                ret 
= -1 ;
        
else if ( ret > 0 )
                ret 
= 1 ;

        
return( ret );
}

int _tmain(int argc, _TCHAR* argv[])
{
  
char* p1 = "abcde";
  
char* p2 = "abchd";

  
int i = my_strcmp(p1, p2);

  
return 0;
}

posted on 2011-06-02 21:49 Mike Song 阅读(202) 评论(0)  编辑 收藏 引用 所属分类: C字符串函数源码分析


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理