Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1396356
  • 博文数量: 143
  • 博客积分: 10005
  • 博客等级: 上将
  • 技术积分: 1535
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-23 17:25
个人简介

淡泊明志 宁静致远

文章分类

全部博文(143)

文章存档

2011年(2)

2009年(1)

2007年(22)

2006年(118)

我的朋友

分类: C/C++

2006-11-24 08:50:35

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;

}

阅读(2888) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~