导入
学了很多对字符串操作的函数,来汇总下
字符转换函数
toupper
将小写字母转换为大写字母
传入小写字母转为大写字母
tolower
传入小写字母转为大写字母 注意这俩个字母都要包含头文件<ctype.h>
strcpy 字符串拷贝
把arr1里面的元素拷贝到arr2中,在拷贝时从arr1中读到 '\0'结束
strcat 字符串拼接
在arr2中找到\0然后从这里将arr1的元素拷贝到arr2中,并在最后加上\0
strcmp 比较字符串大小
比较的是俩个字符串的每个位置顺序相同元素的ascll码值 arr2大于arr1返回大于0 等于放回0 小于返回小于0
strncpy 字符串拷贝
比起strcpy多了个整形参数,决定的是将多少个元素从arr1中拷贝到arr2中 返回的是arr2的地址
需要注意的是若b的数大于arr1中的元素,就会填充\0以达到拷贝b个元素
strncat
b决定的是arr1拼接的元素个数,返回值为arr2的地址,会在拼接过后加上\0
若b的个数大于arr1数组的个数,则把arr1中的全部拼接之后就不管了
strncmp
b决定比较数组的几个元素, 其他的和strcmp一样的用法
strstr
在arr2中找到和arr1相同的字符串,找到了返回该字符串字arr2的首元素地址
若没有返回(NULL)
strtok
将arr2中与arr1相同的元素转换为\0,然后返回\0前面的这个字符串的首元素地址,若没有与arr1
相同的元素返回NULL arr2只用传入一次 因为strtok有一个全局变量用来记录\0之后的下一个地址
strerror
传入对应的错误代码 返回的是对应的错误信息的首字母地址
perror
必须要传入一个字符,perror中有个全局变量errno 该变量用来记录程序运行时发生的错误对应的
错误代码,perror会直接打印errno对应的错误代码和传入的字符串
memcpy
对来个数组以字节为单位进行拷贝,具体操作和strncpy一样 注意若俩数组的空间有重叠则使用memmove 虽然memcpy能完成任务,但这是未定义的操作,是在设计是不需要它实现的操作
memcpy在进行拷贝时不会受数组类型的限制,也不会发生越界和数组空间不够等等的情况
这里的arr2 arr1的作用只是提供起始位置的地址,一个char类型为一个字节大小在交换了一个字节后也就是交换了一个元素,一个int类型4个字节,在交换了4个字节之后也就是交换了一个int类型的数据,在交换时若地址超出了数组范围也无所谓,也会继续交换,不会报错,但是这是有风险的操作,这时数组的末尾可能没有\0在打印时会出现随机值,其实数组本质上就是一串相连的地址
memmove
专门用来进行数组地址有重叠的拷贝,使用方法和memcpy一样
memset
以arr起始的地址向后的4个字节都赋值为 'w' 的ascll码值,是在字节层面的赋值
memcmp
比较的是每个字节的ascll码值的大小,返回值和strcmp一样
END
需要注意的是以上的所有字符串函数都要需要头文件<string.h>,除了俩字符函数toupper
tolower需要<ctype.h>