设为首页 加入收藏

TOP

比较字符串的大小
2014-11-23 23:33:41 来源: 作者: 【 】 浏览:1
Tags:比较 字符串 大小
//功能:比较字符串的大小
//如果str1>str2返回1
//如果str1=str2返回0
//如果str1 char zstrncmp(unsigned char *str1,unsigned char *str2,byte num)
{
while(num!=0)
{
if((*str1)==(*str2))
{
str1 ++;
str2 ++;
num --;
}
else if((*str1)>(*str2))
return(1);
else
return(-1);
}
return(0);
}


如果单纯比较长度,直接调用类似于strlen()之类的函数就可以,加以比较即可.
如果比较字符串的大小,则比较的是字符的ASCII编码的大小.搜索一下ASCII码表就可以得知每一个ASCII字符的大小.
在比较时,设置一个计数器,从零开始,一直循环到最短的那个字符结束,一位一位进行比较,
1.如果 字符串1的第n位的ASCII码值 等于 字符串2的第n位的ASCII码值 则 继续比较下一位
2.如果 字符串1的第n位的ASCII码值 大于 字符串2的第n位的ASCII码值 则 输出结果:1,表示字符串1 > 字符串2; www.2cto.com
3.如果 字符串1的第n位的ASCII码值 小于 字符串2的第n位的ASCII码值 则 输出结果:-1 表示字符串1 < 字符串2;
4.如果 每一位的ASCII码值都相等,而且长度相同, 则 输出结果:0 表示字符串1 == 字符串2;
5.如果 字符串1是字符串2的前m位,例如 abcd 与abcdef 比较, 则 字符串1<字符串2. 原因是,到第5位时,字符串1的ASCII值是0,而字符串2的ASCII值为'e',即十进制的101,
当然是字符串2大了.
具体到 cds和lesoqd 从第一位开始,'c'和'l'比较,当然是'c' < 'l'了,所以,"cds" < "lesoqd"
常用的几位ascii的顺序从小到大为: 0..9, A..Z, a..z.
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C语言程序设计经典50例,会用到的 下一篇单链表中一个插入操作的分析

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: