strlen
输出是hehe
因为strlen返回值是无符号数(unsigned int),两个无符号数相减的值任然是无符号数,即3-6=-3—>3。
strcpy
错误示范
这里arr1是常量字符串不能被改变
strcat
strcmp
1.
2.
strncpy
strncpy(arr1,arr2,n)
输入n就拷贝n个字符过去,不会补\0。
若arr2字符数量小于n,多拷的字符会自动补\0。
6.strncat
strncat(arr1,arr2,n)
会将arr2内前n个字符从arr1的第一个\0处开始补到后面去,补完后会自动补\0。(arr1变,arr2不变)
如果n大于arr2内字符数量,则会将将arr2内字符全部补过去,之后再补\0,不会像strncpy一样再往后面补\0,直到数量达到n。
7.strncmp
与strcmp的比较方式类似,只是限定了比较几个字符。
Tip1.
7.strstr—查找字符串
char arr1[]=”abcdbc”;
char arr2[]=”bc”;
strstr(arr1,arr2);
判断arr2是否是arr1的字符串,如果是子字符串则返回其第一次出现时起始位置的地址(这里就返回arr1的第一个b的地址),否则返回NULL。
8.strtok
第一次调用它会找标记,找到后把@改为\0,然后返回z的地址,打印时打印zpw。
第二次调用它从上一个标记(\0)处往后查找标记,找到后会把 . 改为\0,然后返回b的地址,打印时打印bitedu。
第三次调用它从上一个标记(\0)处往后查找,找到\0后并无标记后就找完了,同时返回t的地址,打印时打印tech。
演示1.
演示2.
演示3
strerror
头文件#include<errno.h>
10.字符分类函数
如果结果正确返回非0数字,错误返回0。
头文件#include<ctype.h>
字符转换函数
转小写
转大写
Tip2.
对于整型数组与其他非字符数组的拷贝是不能用strcpy,如下
(整型存储今后看成char类型一字节一字节拷贝)
12.memcpy
用于对非字符数组的拷贝
最后一个参数是填写拷贝的字节
实现
如果出现内存重叠情况可以使用memmove
实现memmove