strcat函数
用于对目标数组内追加字符
如图所示:
要注意的是,目标数组的数字不可以省略如:arr[]=abcdefg"因为这样编译器默认arr只有8个元素(\0)会越界访问。为了更安全,还有类似的函数为:strncat
strncat函数:
用于对目标数组内追加字符(相对strcat更安全)。
相对于strcat多了一个参数,如图所示:
最后一个参数的作用就是在arr1中选多少个字符追加到arr中。可以控制个数所以相对strcat更可控一些。
strcpy函数:
用来将第二个数组里的元素拷贝到第一个数组里,如图所示:
需要注意的点与strcat函数类似,是溢出问题,当目标数组(第一个数组)中放不下源头数组(第二个数组)时,会报错。而且有时候我们需要部分目标数组的元素时用strcpy函数并不能实现,由此引出更安全的函数,strncat。
strncpy函数:
与strncat类似,最后一个参数的功能是确定将多少个源数组中的元素对应覆盖到目标数组。
相对来说更安全,也更好用。如图所示:
strcmp函数:
用来字符串比较,比较方式为:将俩数组中从左到右一一对应的字符转化为ASCII码值比较大小。
当第一个数组中的对应字符值大于第二个数组中的对应字符值时,返回1,全部相等返回0,第一个数组中的对应字符值小于第二个数组中的对应字符值时,返回-1.
需要注意的是strcmp并不能完全比较哪个字符串长,哪个字符串短。他只能找到从左到右一一对比后哪个数组的先碰到ASCII码值比较大的数组。如图所示:
strncmp函数:
相对于atrcmp更安全,与其他加n类型一致,第三个参数的功能是限制对比的元素的个数。
strstr函数:
是在目标数组元素中查找一段在源数组中相等元素的函数。当找到后会返回对应位置char类型的指针如图所示:
但凡有一处与源函数的元素对不上就会返回空指针。
如图所示:
strtok函数:
将目标数组中的字符串进行切割,返回一个char*类型的指针,如图所示:
要注意的是这个函数会对目标函数进行修改,最好拷贝一份后对备份使用这个函数。
strerror函数:
搭配头文件#include<errno.h>使用。
它的作用是检测文件函数的错误,对错误信息进行字符串输出。如图所示:
errno是c语言设置的一个全局变量的错误码存放的变量。
memcpy函数:
将一块空间的数据拷贝到另一个空间,多用于数组和结构体。
返回值是void*类型的指针,需要什么样的指针就对其强制类型转换。
这个函数一共需要三个参数,第一个参数是数据目的地地址,第二个参数是数据源头地址,第三个参数是传输的字节大小。结果如图所示:
有时候我们想对arr数组中的数据再次赋值到arr数组中,在vs2022的环境中,可以继续使用memcpy函数,在其他版本中不一定。需要使用memmove函数。
memset函数:
用于完全初始化一片空间,相当于for循环一个一个赋值,且更方便。
所用的三个参数分别是目标地址,赋值的内容,赋值多少字节。
我们写char arr[][5]={'a'},这是不完全赋值,我们写memset(arr,'a',5)就是完全赋值。
如图所示: