字符串函数strlen、strcpy、strcmp和strcat的使用都需要包含一个头文件#include<string.h>
1.strlen函数
strlen的参数类型是int strlen(const char * )
我们可以直接写一个使用库函数strlen求字符串长度的代码,可以很简单的求出字符串的长度
![](https://i-blog.csdnimg.cn/blog_migrate/bfc520904b1ef23b2a63365eb5cfd8d2.png)
注
:字符串以
'\0'
作为结束标志,strlen函数返回的是在字符串中 '\0'
前⾯出现的字符个数(不包
含
'\0'
)。,参数指向的字符串必须要以 '\0'
结束,注意函数的返回值为size_t,是⽆符号的。
那我们如何模拟实现呢?有三种方法
一.计算器方式
![](https://i-blog.csdnimg.cn/blog_migrate/54dacc078c0d46fe2640e807456068a1.png)
二.递归方式
![](https://i-blog.csdnimg.cn/blog_migrate/dffe3f12e43ef28c392b4d2dfb6182bc.png)
三.指针方式
![](https://i-blog.csdnimg.cn/blog_migrate/a64c081cc7d746a382173933742e944b.png)
2.strcpy函数
参数类型 char
*
strcpy
(
char
* destination,
const char
* source );
![](https://i-blog.csdnimg.cn/blog_migrate/819b902ddd610cccc292e3a84f6aa899.png)
注:
源字符串必须以 '\0' 结束。 会将源字符串中的 '\0'
拷⻉到⽬标空间。 ⽬标空间必须⾜够⼤,以确保能存放源字符串。 ⽬标空间(不能是字符串常量)必须可修改。
模拟实现
![](https://i-blog.csdnimg.cn/blog_migrate/0efdcfbcd1a7ce309b768fa377a28123.png)
这个代码可以优化
![](https://i-blog.csdnimg.cn/blog_migrate/11b5ebc41c8dac1c8707bb9b0d8ade04.png)
3.strcat函数
参数类型
char
*
strcat
(
char
*,
const char
*)
注:
⽬标字符串中也得有
\0
,否则没办法知道追加从哪⾥开始。 ⽬标空间必须有⾜够的⼤,能容纳下源字符串的内容。
⽬标空间必须可修改
![](https://i-blog.csdnimg.cn/blog_migrate/6b838e99fa23e17e52db3d373f065fbb.png)
模拟实现
![](https://i-blog.csdnimg.cn/blog_migrate/82dfa264905f1d0f3f550ed866c4f605.png)
4.strcmp函数
参数类型
int
strcmp
(
const char
* ,
const char
* )
判断原则:依次比较,谁大就大,与字符串长度无关
注:
第⼀个字符串⼤于第⼆个字符串,则返回⼤于0的数字
第⼀个字符串等于第⼆个字符串,则返回0 第⼀个字符串⼩于第⼆个字符串,则返回⼩于0的数字
![](https://i-blog.csdnimg.cn/blog_migrate/480587fa3b224d9209cfe95ff86d04fd.png)
模拟实现
![](https://i-blog.csdnimg.cn/blog_migrate/874a8f67d50998ac1c378829b1c9e311.png)