鱼C论坛

 找回密码
 立即注册
查看: 2765|回复: 2

[技术交流] 《带你学C带你飞》第十九讲:字符串处理函数

[复制链接]
发表于 2017-12-27 21:24:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 shuiyu 于 2018-1-1 11:10 编辑

越努力,越幸运。欢迎大家来看我的笔记,不对的请各位大佬指正,谢谢

一、字符串的长度(strlen)和字符串的大小(sizeof)
(1)strlen():用来计算字符数组的长度,C 语言字符串的长度取决于结束符('\0')的位置,不包括结束字符"\0"。

(2)sizeof():用来计算字符串(数组)的大小,定义字符串或者数组的时候有多大那就是多大;如果没有在开始的时候定义大小,那么就是取决于字符串多大,这个时候就是包括‘\0’的了。

二、复制函数strcpy和受限的复制函数strncpy
(1)strcpy(函数1,函数2):函数1复制函数2的值并且覆盖掉自身的值。

(2)strcpy函数对于字符串不等长的时候:
如函数1较长,但是因为复制函数2的时候把函数2的‘\n’都复制过来了,所以字符串就结束了.
如函数2较长,如果函数1在定义的时候大小不足已存放下函数2的数据,就会发生溢出。

(3)strncpy(函数1,函数2,N)    函数1复制函数2的值并且覆盖掉自身的值,类似于strcpy,只是加了一个长度限制(即只复制前面N的字符)。

(4)strncpy函数:如果源字符串(函数2)的长度小于 n,那么就用 '\0' 填充额外的空间。如果源字符串(函数2)的长度大于或等于 n,那么只有 n 个字符被拷贝到目标数组中(注意:这样的话将不会以结束符 '\0' 结尾)。(PS:为了使该函数更“安全”,建议使用 dest[sizeof(dest) - 1] = '\0'; 语句确保目标字符串是以 '\0' 结尾。)

三、连接函数strcat和受限的连接函数strncat
(1)strcat(函数1,函数2):字符串连接函数,会覆盖函数1的结束符(‘\0’),连接上函数2字符串,可以说是自动加上结束符‘\0’.(其实特也不能说是自动加上,因为函数2后面自动带了一个结束符的).

(2)strncat (函数1,函数2,N):函数用于拷贝源字符串(函数2)中的 n 个字符到目标数组的字符串后边,并在末尾添加结束符 '\0'。
如果源字符串(函数2)的长度小于 n,那么不会像 strncpy 函数那样使用 '\0' 进行填充(但结束符 '\0' 还是有的)。 另外,目标数组中的原有的字符串并不算在 n 中。

四、比较函数strcmp和受限的比较函数strncmp
(1)strcmp(函数1,函数2):strcmp 函数用于比较两个字符串。从该函数从第一个字符开始,依次比较每个字符的 ASCII 码大小,直到发现两个字符不相等或抵达结束符('\0')为止。

如果都一致就会返回0。如果函数1大于函数2则返回值为正数,反之为负数。
(2)strncmp(函数1,函数2,N):strncmp 函数用于比较两个字符串的前 n 个字符。从该函数从第一个字符开始,依次比较每个字符的 ASCII 码大小,发现两个字符不相等或抵达结束符('\0')为止,或者前 n 个字符完全一样,也会停止比较。

PS:就只有strncmp函数小甲鱼没有在教程中实践,那我就发一下我的实践好了
1.PNG

谢谢小甲鱼带来的视频教程,感谢!!

本节结束,多谢览阅!
越努力,越幸运。谢谢大家来看我的笔记,不对的请各位大佬指教,谢谢

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-10 20:36:36 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-1-11 16:06:59 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 06:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表