目录
字符串函数
长度不受限制的字符串函数
strlen函数
库函数,用来求字符串\0之前的长度,使用时包含头文件#include<string.h>
返回的是无符号数,两个无符号数相减算出来也是无符号的,除非强转
模拟实现:
1.计数器
2.递归
3.指针-指针
strcpy函数
用来完成字符串拷贝,包含\0
目标空间必须足够大,同时目标空间必须可修改
(源头,目的地)
char * strcpy( char * destination, const char * source)
模拟实现:
strcat函数
字符串追加
char * strcat ( char * destination, const char * source )
先找到arr1末尾,也就是\0,再把arr2的内容复制过去
注意:
1、要保证目标空间足够大,且可修改
2、目标空间要有\0
3、源空间也要有\0,在拷贝时将源字符串中的\0也要拷贝进去
4、最好不要用这个函数自己给自己追加,可以使用strncat
模拟实现:
strcmp函数
字符串比较,不是比较长度,而是比较对应位置上字符的大小即ASCII码值
模拟实现:
这样也可以
长度受限制的字符串函数
strncpy函数
strncat函数
会追加\0
strncmp函数
其他
strstr函数
在字符串中找字符串
第一行是C,第二行是C++
在str1中找str2第一次出现的位置,如果没有出现,就返回一个空指针NULL
模拟实现:
这个模拟实现只是一种暴力求解方式,不够高效,可以参考KMP算法
strtok函数
切割字符串
char* strtok(char* str , const char* sep);
sep参数是分隔符的字符串,str是包含了0个或多个由分隔符连接的字符串
strtok函数找到str中的下一个标记,并将其改为\0,返回指向这个标记的指针,因为strtok会改变字符串,所以使用strtok函数切分是一般都是使用临时拷贝的内容
当strtok函数的第一个参数不为NULL,函数将找到str中的第一个标记,并保存其在字符串内的位置
当strtok函数的第一个参数为NULL,函数将在同一个字符串中保存的位置开始,查找下有一个标记
如果字符串中不存在更多的标记,则返回NULL指针
strerror函数
char* strerror(int errnum)
是将错误码翻译成错误信息,返回错误信息的字符串的起始地址
使用库函数,或者正规的软件设计都会设置错误码,类似于404
C语言中使用库函数的时候,如果发生错误,就会将错误码放在error的变量中,error是一个全局变量可以直接使用
例子:
perror
直接打印错误信息,相当于printf+strerror
字符函数
字符分类函数
![](https://i-blog.csdnimg.cn/direct/5dc2b56ca8644e39b871ac136d7af461.png)
字符转换函数
int tolower(int c)大写转小写
int toupper(int c)小写转大写
规定用int去接收