c语言-求代码输出的结果

#include #includevoid main() { char * s1="AbDeG"; char *s2="AbdEg";s1+=2; s2+=2;printf("%d\n", strcmp(s1, s2)); }

第1个回答  2020-03-20
输出:-1
s1
+=
2表示将字符串s1的首地址向后移两个单位,相当于截去了前两个字符,因为s1是指针。
s2
+=
2同理。

执行以上两句后
s1
=
"DeG";
s2
=
"dEg";
strcmp(s1,s2);是比较两个字符串的大小,即对应的ASCIi码的大小,小写字母的ASCII大于大写字母,所以
s1
<
s2
,strcmp(s1,s2)返回-1。如果s1
>
s2
,返回1;如果s1
==
s2,返回0。
第2个回答  2021-01-03
输出是-1
strcmp函数是 当s1<s2时,返回值<0
字符串中小写字母的值要比大写字母要大
s1+=2是DeG
也就是68
101
71
s2+=2是dEg
也就是
100
69
103
显然
s1
小于
s2
相似回答