C++,已知char* s1= "123", *s2="34";则 strcmp(s1, s2)的值为下列哪个

已知char*s1="123",*s2="34";则strcmp(s1,s2)的值为下列哪个(B)。(A)1(B)-1(C)"12334"(D)"34"为什么选B?谢谢!... 已知char* s1= "123",*s2="34";则 strcmp(s1, s2)的值为下列哪个(B )。
(A) 1 (B)-1 (C)"12334" (D) "34"
为什么选B?谢谢!
展开
 我来答
明渊阁
2013-06-24 · TA获得超过450个赞
知道小有建树答主
回答量:300
采纳率:0%
帮助的人:245万
展开全部
strcmp是比较s1和s2两个字符串的大小
当s1<s2时,返回值<0

当s1==s2时,返回值=0

当s1>s2时,返回值>0

比较的时候从第一个字符开始比较,比较的是字符的ascii码。如果两个字符相等,一直比较直到字符串结尾。

如:s1=“123”,s2=“34”,他们的第一个字符分别是1和3,而1的ascii码是49,而3的ascii码是51,因此s2大于s1,此函数返回小于0的值,为-1.
百度网友0bf2197
2013-06-24 · TA获得超过943个赞
知道小有建树答主
回答量:596
采纳率:50%
帮助的人:113万
展开全部
一般形式:strcmp(字符串1,字符串2)
说明: 当s1<s2时,返回值<0 当s1=s2时,返回值=0 当s1>s2时,返回值>0

即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。

你的一开始1<3,所以s1<s2,返回小于0 的数。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yuhezcb0755
2013-06-24 · TA获得超过643个赞
知道小有建树答主
回答量:237
采纳率:0%
帮助的人:123万
展开全部
int __cdecl strcmp (const char * src,const char * dst)
{
  int ret = 0 ;
  while( ! (ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst && *src)
  ++src, ++dst;
  if ( ret < 0 )
    ret = -1 ;
  else if ( ret > 0 )
    ret = 1 ;
  return( ret );
}

以上是strcmp的原码:
即src和dst字符找到第一个不相等的时候, 如果src中字符比dst中字符小时, 返回-1, 大时返回1, 全部相等返回0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
飨宴_
2013-06-24 · TA获得超过131个赞
知道小有建树答主
回答量:136
采纳率:0%
帮助的人:104万
展开全部
按顺序比较字符串个字符的ascii值,输出正负(前一个减后一个,前小为负后小为正),如果结束还没有分出大小则为0(字符串相同)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式