C语言中字符串与库函数的那些事(+模拟实现)

果本文对大家有用的话,请留下个赞吧( ﹡ˆoˆ﹡ )

如果大家有好的意见或者疑问请留在评论区,看见了一定认真考虑!O(∩_∩)O~~

    • strlen函数

函数原型:size_t strlen(const char *string);

作用:返回字符串长度

实现:从第一个字符开始数,直到遇见\0停止(\0不算入其中,遇见空格也算入其中)。

例子:

最终输出结果为:12

注意事项:

即size_t-size_t一定的结果是按无符号的解读的(一定大于等于0)

例如:strlne("abc")-strlen("abcd")是大于零的

模拟实现:

1.循环版

2.递归版

3.指针-指针版

    • strcpy函数

函数原型:char* strcpy(char *destination,const char * source)

作用:将指针source指向的字符串拷贝到指针destination指向的空间中,destination中原有的被替代,但是没有被拷贝的地方内容不变(\0会被拷贝,所以后面的打印的时候不会出现)

如图:

实现:从source开始向后一直到遇见\0为止,\0也会拷贝;最后返回指针destination指向位置。

例子:

最终输出结果为:I love China

注意事项:

ps:如果源字符串没有\0,就会出现以下结果,如图:

ps:destination不能是const char *类型

ps:当目标空间较小,不能完全拷贝,就会越界访问,但是还是会强行将后面的拷贝进去。

模拟实现:

    • strcat函数

函数原型: char *strcat(char *strDest,const char *strSrc) ;

作用:将strSrc指向的字符串连接到strDest指向字符串的后面(strSrc的\0也会过去)

实现:找到*strDest中的\0,然后从\0开始连接,直到遇见 *strSrc中的\0为止。(连接过程与strcpy有点相似),最后返回指针strDest指向位置。

例子:

最终输出为:holle world!

注意事项:

ps:三个注意事项的错误结果同strcpy

模拟实现:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值