问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言中关于字符串的问题

发布网友 发布时间:2022-04-20 12:14

我来回答

6个回答

热心网友 时间:2022-04-20 13:43

注意这里是调用函数,也可以认为是一种复杂的表达式运算。
strcmp函数所起到的作用是判断两字符串的长度是否想等,具体怎么实现是它的函数代码的事,如果实在要了解的话,我可以把源代码写出来。
strcmp需要两个参数,他们都是地址值,有这个的话就可以知道两字符串的位置,例如"bbb" 和"ccc"的位置,buf1 = "aaa"只把字符串"aaa"的首字母a的内存地址赋给了字符指针buf1,这样对buf1间接访问运算得,*buf1=='a',而容易理解一个字符串的字符在内存中都是依次
存储的,那么利用*(buf1+1)就可读到下一个'a'。这涉及到指针的运算。

这里还要说明一个问题,
当printf("%s",bufi);执行后,输出为aaa
当你想过吗,为什么不是aa或a,因为按照前面的说法并没有什么内在机制使得输出aaa的,所以要提到结束符'\0',他是用来标记字符串结束的,当计算机读到它时就知道字符串结束了,说是"aaa"其实存储的时候是"aaa'\0'",这个‘\0’也是个字符,这是编译自动加上去的。

那么再结合字符的ASCLL码中‘\0’在一般字符中是最小的,就是0,就可以判断字符串的长度了。

你自己多理解,希望能帮助到你,要这个函数源代码的话网上好多下的到的。

热心网友 时间:2022-04-20 15:01

有关系的是,strcmp参数类型而已。
如果参数类型满足不就可以了吗?这是调用函数的啊

热心网友 时间:2022-04-20 16:36

int __cdecl strcmp (
const char * src,
const char * dst
)
{
int ret = 0 ;

while( ! (ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)
++src, ++dst;

if ( ret < 0 )
ret = -1 ;
else if ( ret > 0 )
ret = 1 ;

return( ret );
}
这是strcmp源代码,能看明白了吧!通过地址取出对应地址对应的内容,然后再比较:)

热心网友 时间:2022-04-20 18:27

*buf1 *buf2 是两个字符串,buf1和buf2是把两个字符串首地址传过去,然后再对*buf1和*buf2进行比较。

热心网友 时间:2022-04-20 20:35

怎么会呢?
在声明变量buf1、buf2、buf3时系统已经分别让它们三个指向不同的地址,而在这三个不同地址里分别存放了aaa,bbb,ccc三个字符串。因此比较语句是正确的。
即便写成ptr = strcmp(buf2, buf2);也是正确的,相当于把buf2自己跟自己比较了一次,不过这就没什么意义了,结果肯定是0.

热心网友 时间:2022-04-20 23:00

char *buf1 = "aaa", *buf2 = "bbb", *buf3 = "ccc";
上述定义的同时已经给三个变量分配不同的地址了
所以这个问题就这样,lz不用深追究了,它们可以比较的
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...的电器到成都,请问一下,那个航空快一些呀,多少/公斤? 前女友和我分手一年之后,出车祸死了,我很高兴,这种心理是不是不... 为什么听到前女友去世的消息,我竟然放声大哭,她很爱我,是我对她腻了... 兰州银行充天然气必须要本行卡吗 从服饰礼仪看中西方文化差异 为什么iqoo11评价那么低? 相机快门线的运用范围 快门线是干什么用的 请问这是什么虫子 还挺硬的 在楼房内 整理箱上面发现的 屋内有木质上... 请问这是什么虫子?家里抓到,2cm左右。坐标北京,昌平,冬季12月,楼房... 什么车适合做滴滴专车 这个手机怎么装卡 魅蓝3手机壳怎么拆除,我现在不能够装sd卡。希望可以帮助,谢谢 越南盾和人民币的兑换是怎么样的呢?我准备去越南了,急! 人民币换越南盾怎样换?有什么方法??(小额) c语言关于字符串的问题,新手求教 淘宝上的纯流量卡真的吗 怎样在同一部手机上用两个微信!怎么才能下载另一个! 欠钱没打欠条最后不承认怎么办 运放OP07是否具有低漂移 我用了个DAC0832转换,用UA741做运放,运放出来的电压不到3V这是什么意思 欠钱不承认没有欠条怎么办 ic贴反向如何回对策 信噪比提高有什么好处 opa2277用于低放大倍数的电路好用吗 卤水牛肉最好吃的做法(大家想要什么教程可以在评论区 OPA27单电源供电该怎么接线 opa37和opa27芯片有什么区别 平时如何做牛肉更入味,不仅香气四溢还很解馋? OPA27是多少个G的? 资规局的全称是什么 规自局全称是什么? 规建局全称是什么 现在的规划局更名全称为 小型张上革命先驱中山先生题写的建国方略是什么? 纪念辛亥*百年,我国发行了邮票和小型张,此小型张上*先驱孙中山题写的建国方略是什么? 为纪念辛亥革命,孙中山设计的邮票写的建国方略是什么 纪念辛亥*百年,我国发行了邮票和小型张,此小型张上*先驱孙中山先生的题词是什么 辛亥革命孙中山先生题写的建国方略是什么? 请问1997年发行的“香港回归祖国”金箔小型张上面是真黄金吗? 历史上冬季奥运会第一枚金牌获得者是? 华为手机图案锁屏了,咋开呢 成都勘测设计研究院是央企还是国企 百色市城市规划勘测设计咨询有限公司怎么样? 贵州新地标城市规划勘测有限公司怎么样? 黑龙江省城市规划勘测设计研究院怎么样? 广州市芳科城市规划勘测设计有限公司怎么样? 广州澳新城市规划勘测设计有限公司怎么样? 威海市顺昌城市规划勘测设计有限公司怎么样? 讷河市龙腾城市规划勘测设计有限公司怎么样?