求字符串长度
strlen
- 以‘\0’为结束标志,返回值为‘\0’前的字符个数
- 函数的返回值时无符号int
长度不受限制的字符串函数
strcpy
- 源字符串以’\0’为结尾
- 会将源字符串的’\0’拷贝到目标空间里
- 目标空间必须足够大,以确保能够存放源字符串
strcat
- 源字符串以’\0’结尾
- 目标空间必须足够大,以确保存放的下源字符串
- 目标空间必须可修改
strcmp
- 如何比较:优先比较ascii码,后比较长度。
- str1 > str2 返回值: >0
- str1 = str2 返回值: =0
- str1 < str2 返回值: <0
长度受限制的字符串
strncpy
- 会将源字符串的num个字符拷贝到目标空间
- 不会拷贝’\0’
- 如果源字符串的长度小于num,则在拷贝结束之后,在目标的后面追加0,直到num个。
strncat
- 将源字符串的num个字符拼接至目标字符串后面,并且会拷贝’\0’
- 如果源字符串的个数小于num个,只拷贝至’\0’
strncmp
- 比较到出现一个字符串结束或是num个字符全部比较完。
- 返回值同strcmp一样
字符串查找
strchr
- 在字符串中查找第一次出现的该字符,并返回该处地址
strrchr
- 在字符串中查找最后一次出现的该字符,并返回该地址
strbrk
- 返回第一个字符串中第一次出现在第二个字符串中的字符地址
strstr
- 返回第二个字符串中第一次出现第一个字符串的地址
- (判断str1是否是str2的字串)
高级字符串查找
strspn
- 返回的是str1字符串中开始部分匹配str2字符串中字符的个数
strcspn
- 返回str1字符串中开始部分出现的不在str2字符串中的字符个数
strtok
- char strtok(char *str,const char sep)
- sep是一个字符串,定义了用作分隔符的字符集合
- 第一个参数是一个字符串,包含了0个或者多个由sep字符串中一个或多个分隔符分割的标记
- 找到str下一个标记,并将其用\0结尾,返回该地址
- 第一个参数不为NULL,函数将找到str中第一个标记,strtok函数将保存它在字符串的位置
- 第一个参数为NULL,函数将在同一个字符串中被保存的位置开始,查找下一个标记。
- 如果字符串不存在更多标记,则返回NULL指针。
错误信息报告
strerror
- 返回错误码,所对应的错误信息
- 函数与程序退出时都需要判断是否执行成功:
程序使用推出码
函数使用返回值:0即成功,非0失败 - 必须包含的头文件:#include
字符操作函数
- iscntrl:任何控制字符
- isspace:空白字符
- isdigit:十进制数字0~9
- isxdigit:十六进制数字
- islower:小写字母(a~z)
- issupper:大写字母(A~Z)
- isalnum:字母或数字,a~z,A~Z或0~9
- isalpha:a~z,A~Z
- ispunct:标点符号,任何不属于数字或字母的图形字符
- isgraph:任何图形字符
- isprint:任何可打印字符,包括图形字符和空白字符
内存操作函数
- memset
- memcpy
- memmove
- memcmp
- memchr
- 以上函数均以字节操作
- memmove与memcpy的区别就是memmove处理的源与内存是可以重叠的。