永发信息网

C语言strcmp使用问题

答案:5  悬赏:80  手机版
解决时间 2021-05-14 20:56

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

最佳答案

有两个函数,一个是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.这样可以理解吗?

全部回答

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

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

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

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

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

aab  ab

'a'-'a'  0 继续

'a'-'b'  -1  返回

所以返回-1

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

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

strcat(a,b)="aab"

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

strcmp 函数只有3种值,

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

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

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

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

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

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码比较。

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
魔兽世界有多少好玩呀?
如何给猫咪去跳蚤
临澧县地方税务局稽查局这个地址怎么能查询到
W799tts语音文件下载so
求东方神起浩浩的头像!
装修木工图纸怎么看,如何看懂木工装修图纸
如何让手机QQ看到超级QQ用户在线
栾川县中国电信(陶湾镇营业厅)在哪里啊,我有
煮粥时砂锅为什么会炸?
炫舞它为什么就这么卡 它怎么就这么卡!
右上角句号怎么打 我的是QQ拼音
中风如何防治
DNF狂战穿什么力量装 只要力量什么速度都不要
美安力女宝是什么?
长江和时间有关的诗句,歌颂关羽的句子
推荐资讯
9月中下旬国内哪个旅游景点好?
10年世锦赛大家看好中国男篮吗?觉得阿联会爆
stephy主演的搞笑电影
天山的第7本书65的书有没有伤害的?
古代人如何沟通
阿里克斯-弗格森简历
容颜岁月流失的诗句,时光飞逝 岁月催 容颜逝
怎么讨女孩子 开心
求救电脑还原
郑州卖电子元件的在那个地方?什么路?多少号
干什么挣钱?
做红用冰糖还是白糖好?怎样做才好吃不腻?而
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?