C语言库函数源代码】

【本程序在Dev C++ 4.9.9.2 下编译通过】

/*

   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).

   字符串比较函数,比较字符串source和dest。当源字符串大于目标字符串的时候,返回1;

   当源字符串等于目标字符串的时候,返回0。当源字符串小于目标字符串的时候,返回-1;

*/

int my_strcmp(const char *source,const char *dest)

{

   int ret = 0 ;

   while( ! (ret = *( unsigned char *)source - *(unsigned char *)dest) && *dest)

      source++, dest++;

   if ( ret < 0 )

        ret = -1 ;

   else if ( ret > 0 )

        ret = 1 ;

   return(ret);

}

void Print(char * str1,char *str2,int t)

{

   if(t == 0)

      printf("/n%s Equal %s/n",str1,str2);

   else if(t == 1)

      printf("/n%s Upper Than %s/n",str1,str2);

   else if(t == -1)

      printf("/n%s Lower Than %s/n",str1,str2);

}

int main()

{

   char *str1= "ammana";

   char *str2 = "babi";

 

   Print(str1,str2,my_strcmp(str1,str2));

   Print(str2,str1,my_strcmp(str2,str1));

   Print(str2,str2,my_strcmp(str2,str2));

  

   system("pause");

   return 0;

}
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐