
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?谢谢! 展开
(A) 1 (B)-1 (C)"12334" (D) "34"
为什么选B?谢谢! 展开
展开全部
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.
当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.
展开全部
一般形式:strcmp(字符串1,字符串2)
说明: 当s1<s2时,返回值<0 当s1=s2时,返回值=0 当s1>s2时,返回值>0
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。
你的一开始1<3,所以s1<s2,返回小于0 的数。
说明: 当s1<s2时,返回值<0 当s1=s2时,返回值=0 当s1>s2时,返回值>0
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。
你的一开始1<3,所以s1<s2,返回小于0 的数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
按顺序比较字符串个字符的ascii值,输出正负(前一个减后一个,前小为负后小为正),如果结束还没有分出大小则为0(字符串相同)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询