strcpy 长度不一致_char*转std::string

strcpy 长度不一致_char*转std::stringC语言学习—字符串函数总结stringC语言学习—字符串函数总结string和字符串有关的函数有很多,只需要学习常用的4种就够用,其他的在后面用到的时候自然而然就会。在学习这些函数之前我们需要知

C语言学习—字符串函数总结string   C语言学习—字符串函数总结string   和字符串有关的函数有很多,只需要学习常用的4种就够用,其他的在后面用到的时候自然而然就会。   在学习这些函数之前我们需要知道,为什么字符串会有大小之分(清楚后会对这几个函数有更深得了解):因为计算机是不认识字符的,他只认识1和0这两个数值。ASCII的十进制数由32个二进制组成,所以计算机的CPU只要比较ASCII中字符对应的数值就可以求出那个字符串大,这也是为什么字符串有大小的原因。ASCII图下面有:   这次总结的4个函数是:strlen、strcmp、strcpy、strcat.   函数的头文件是:#include <stdio.h>   strlen:   strlen是计算字符串有效长度的函数。格式:strlen(字符数组名字)   即使字符数组的长度是10个字节的空间,但是strlen只会求出字符数组的有效长度。   strlen的工作原理:   strlen会遍历字符数组,同时开始计数。当遇到结束标志符‘0’的时候,就结束遍历,同时以遍历的个数作为返回值输出。   strcmp:   strcmp是比较两个字符串大小的。字符串也有大小?有,字符串是由字符组成的,字符在计算机中是由ASCII组成的。所以字符串也有大小。下面是ACCII表的一部分:   
在这里插入图片描述   格式:strcmp(字符串1的名字,字符串2的名字);字符串1减字符串2。代码参考如下:   strcmp的工作原理:   strcmp比较字符串时有种大情况:字符串长度不相等时->字符串相等时,分情况分析:   2.1 字符串长度不相等:strcmp找到两个字符串中最短的字符串的最大有效下标n,用字符串a的对应下标n减去字符串b的对应下标n,得到的值作为返回值(字符有对应的十进制数的,看上面的ACSII表,就是他们对应的十进制数值进行相减),下标n之前的素就不管了,这就是两个要比较的字符串长度不同时,strcmp的工作原理。   2.2 字符串长度相同时:当两个字符串长度相等时,strcmp就会从下标0开始,逐个对比字符串的字符素对应的ASCII的大小(有点绕),意思就是逐个对比字符对应ASCII的十进制数值的大小。回到strcmp原理上面,当所有数组所有有效素的ASCII值之差都是0时,那么0就作为函数的返回值输出。   当逐个比较素时,在第n位出现了两个字符的ASCII值之差不为0的时候,那么后面的素就不会比较了,函数会以n的返回值输出,n有正也有负,我们就可以通过判断strcmp函数的返回值的正负还是为0从而判断出两个字符串谁大谁小了。   总结:当strcmp的返回值>0时,字符串a>字符串b;当strcmp的返回值=0时,字符串a=字符串b;当strcmp的返回值<0时,字符串a<字符串b;   strcpy:   格式:strcpy(字符串a,字符串b);   作用:strcpy是把字符串b的内容复制到字符串a中,不会覆盖字符串a的内容。   参考代码:   
在这里插入图片描述   strcpy工作原理:   strcpy函数会从下标0开始,逐个读取字符串的数据,字符串b的第n位存放到字符串a的第n位。字符串b每把一个素放进字符串a里,字符串a里原本的数据就会先往后面移一位,所以字符串a里面的数据不会被覆盖。只要字符串a的空间能够容纳字符串b的数据,字符串a原本的数据就不会因为内存溢出原因而出错。   
在这里插入图片描述   strcat:   格式:strcat (字符串a,字符串b);   作用;strcat是把两个字符串拼接在一起的函数。简单的理解就是:我们前面说到strcap是把字符串b插到字符串a前面,那么strcat函数就是把字符串b插到字符串a后面。具体来看strcat的工作原理:   strcat工作原理:

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/50230.html

(0)
上一篇 2024年 9月 3日
下一篇 2024年 9月 3日

相关推荐

关注微信