现在的位置: 首页 > 综合 > 正文

stricmp ( )【C语言库函数源代码】

2017年04月08日 ⁄ 综合 ⁄ 共 1104字 ⁄ 字号 评论关闭

 【C语言库函数源代码】

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

/*

_stricmp/_strcmpi perform a case-insensitive string comparision.

For differences, upper case letters are mapped to lower case.

Thus, "abc_" < "ABCD" since "_" < "d".

   字符串比较函数,比较字符串src和dst,但是不区分大小写,

   大写字母会被转换为小写字母来进行比较。如:"abc_" < "ABCD" ,因为 "_" < "d"。

   当源字符串大于目标字符串的时候,返回>0;当源字符串等于目标字符串的时候,返回=0。

   当源字符串小于目标字符串的时候,返回<0;

*/

int my_stricmp(const char *dst, const char *src)

{

   int ch1, ch2;

   do

   {

      if ( ((ch1 = (unsigned char)(*(dst++))) >= 'A') &&(ch1 <= 'Z') )

        ch1 += 0x20;

      if ( ((ch2 = (unsigned char)(*(src++))) >= 'A') &&(ch2 <= 'Z') )

        ch2 += 0x20;

   } while ( ch1 && (ch1 == ch2) );

   return(ch1 - ch2);

}

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

{

   if(t > 0)

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

   else if(t < 0)

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

   else

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

}

int main()

{

   char *str1= "ammana";

   char *str2 = "babi";

   char *str3 = "AMMANA";

   char *str4 = "bab_";

 

   Print(str1,str2,my_stricmp(str1,str2));

   Print(str3,str1,my_stricmp(str3,str1));

   Print(str4,str2,my_stricmp(str4,str2));

  

   system("pause");

   return 0;

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ammana_babi/archive/2006/11/24/1409953.aspx

抱歉!评论已关闭.