字符串大小比较

知道C中比较两个字符串大小是按照他们在ASCII码中的排序!但是具体实杂子比较的呢?例如STR1是helpSTR2是Thanksh的ASCII码和T的ASCII码比?然后... 知道C中比较两个字符串大小是按照他们在ASCII码中的排序!但是具体实杂子比较的呢?
例如STR1是help
STR2是Thanks
h的ASCII码和T的ASCII码比?然后e的ASCII码和h的比?有些STR1中字符ASCII码比STR2中大啊,有些又更小啊,怎么比?还有一个长4,一个长6。杂个比?
我是菜鸟,谢谢,高手详细解答~~~~~~~
展开
 我来答
匿名用户
推荐于2017-10-02
展开全部
如果单纯比较长度,直接调用类似于strlen()之类的函数就可以,加以比较即可.

如果比较字符串的大小,则比较的是字符的ASCII编码的大小.你搜索一下ASCII码表就可以得知每一个ASCII字符的大小. 参考http://www.wpyz.net/noip/11-1.asp

在比较时,设置一个计数器,从零开始,一直循环到最短的那个字符结束,一位一位进行比较,

1.如果 字符串1的第n位的ASCII码值 等于 字符串2的第n位的ASCII码值
则 继续比较下一位
2.如果 字符串1的第n位的ASCII码值 大于 字符串2的第n位的ASCII码值
则 输出结果:1,表示字符串1 > 字符串2;
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.
_野香蕉_
2008-04-19 · TA获得超过3303个赞
知道大有可为答主
回答量:3567
采纳率:50%
帮助的人:1154万
展开全部
比大小,从头一个开始,
头一个谁大,这个字符串就是 谁大。

如果第一个一样大,比第二个。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jackys2007
2008-04-19 · TA获得超过1913个赞
知道小有建树答主
回答量:828
采纳率:100%
帮助的人:917万
展开全部
是按字典顺序来比较的,
就像查字典那样,

返回在字典中前面的那个字符串的指针

当然,是区分大小写的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
敛高爽米曜
2019-10-20 · TA获得超过3.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:28%
帮助的人:735万
展开全部
int
strcmp(char
*s,char
*t)
{
while(*s&&*t&&
*s==*t
)
///如果字符串s和t都没结束,并且其值相等,继续比较
s++;t++;
}
return(*s-*t);
///返回差值,如果*s大,返回正数,如果*t大,返回负数,如果相等,返回0
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
妖兽甲
2008-04-19 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:172
采纳率:0%
帮助的人:136万
展开全部
另外,如果是C++语言的话,要比较字符串的大小就直接str1<str2,再return就OK了,不会像C那样麻烦的要一个字符一个字符的比较
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式