永发信息网

C语言strcmp使用问题

答案:5  悬赏:80  手机版
解决时间 2021-05-14 20:56
  • 提问者网友:美人性情
  • 2021-05-14 07:27

char a[9]="a",b[9]="ab";则strcmp(strcat(a,b),b)的值是什么?原因?

最佳答案
  • 五星知识达人网友:woshuo
  • 2021-05-14 07:38

有两个函数,一个是strcat(),是用来拼接连个字符串的,题目中就是将字符数组a和b中的字符拼在一起,然后赋值给a数组,例如strcat("a","ab")的结果就是"aab"。而strcmp()是比较两个字符串。从第一位开始直到找到不相同的字符然后返回一个值,如果前者的ASCII大就是1,相等就是0,后者ASCII大,值就是-1.比如strcmp("aab","ab"),从第一位开始,第一个不相同的是第二位,前者是"a",后者是"b",因为"a"的ASCII是65,"b"的是66,所以后者大于前者,返回值为-1.这样可以理解吗?

全部回答
  • 1楼网友:由着我着迷
  • 2021-05-14 11:49

strcat(a,b)的结果为"aab",b的字符串为"ab"

把两个字符串从左到右进行比较,"aab"第二个字符'a'小于"ab"第二个字符'b',

所以,strcmp(strcat(a,b),b)返回小于0的数值,默认是-1。

  • 2楼网友:北方的南先生
  • 2021-05-14 10:11

strcat(a,b)  ,是把b追加到a的尾部,所以a中是aab

strcmp("aab","ab")  进行比较,而规则是按次序依次相减,得0时接着比,直到结束,不得0返回,

aab  ab

'a'-'a'  0 继续

'a'-'b'  -1  返回

所以返回-1

一般我们只看它的正负0,正时前面大,负时后面大,0时两者相等

  • 3楼网友:行雁书
  • 2021-05-14 09:55

strcat   函数是把两个字符串做连接,并返回连接后的字符串。

strcat(a,b)="aab"

所以,即求 strcmp("aab","ab")  的值,

strcmp 函数只有3种值,

当前面的字符串大于后面的字符串时,返回 1

当前面的字符串小于后面的字符串时,返回 -1

当前面的字符串等于后面的字符串时,返回 0

"aab"  和  "ab",第一个字母是相等的,第二个字母 ,a比b 小,

所以,最终strcmp(strcat(a,b),b)的值是: -1

  • 4楼网友:duile
  • 2021-05-14 08:53

strcmp(str1,str2)函数就是比较参数中两个字符串str1 和 str2的大小(大小写敏感,即"A" != "a"),如果完全相等,返回0,如果str1 < str2(按照字母顺序比较),返回-1,如果str1 > str2,则返回1。

strcat(str1,str2)函数就是两个参数连接起来、。

你的表达是先运算strcat(a,b),返回值是"ab",然后和b比较,b的值也是"ab",也就是strcmp("ab","ab"),前面和后面的相等应该等于0。最后的值就是“0”。

它们比较大小就是通过ASCII码比较。

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯