#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//strcmpi用于排序
void change(char *pch)
{
if (*pch>='A' && *pch<='Z')
{
*pch += 32;
}
}
int mystrcmpi(char *str1,char *str2)
{
char ch1;
ch1 = *str1;
change(&ch1);//大写转为小写
char ch2;
ch2 = *str2;
change(&ch2);
while (ch1==ch2 && *str1!='\0')
{
str1++;
str2++;
ch1 = *str1;
change(&ch1);
ch2 = *str2;
change(&ch2);
}
if (*str1=='\0' && *str2=='\0')
{
return 0;
}
else
{
if (ch1-ch2>0)
{
return 1;
}
else
{
return -1;
}
}
}
int com(void *p1, void*p2)
{
char **pstr1 = p1;
char **pstr2 = p2;
return mystrcmpi(*pstr1, *pstr2);
}
void main()
{
char *str[5] = { "calc", "ali", "A3", "bt", "BH", };//4*5=20字节
qsort(str, 5, 4, com);//对比
for (int i = 0; i < 5; i++)
{
printf("%s\n",str[i]);
}
system("pause");
}
//_strcmpi 不区分大小写
void main1()
{
char str1[11] = "calC";
char str2[11] = "Calc";
printf("%d",_strcmpi(str1,str2));//忽略大小写 输出0 表示相等
system("pause");
}
更多资料 · 微信公众号搜索【CTO Plus】关注后,获取更多,我们一起学习交流。
关于公众号的描述访问如下链接