模拟实现库函数:strcpy

前言

提示:这里可以添加本文要记录的大概内容:

本文主要记录模拟实现库函数、const关键字的作用以及assert用法


提示:以下是本篇文章正文内容,下面案例可供参考

一、strcpy原型

可以登录cplusplus查看:https://cplusplus.com/

二、思考步骤

1.库函数

代码如下(示例):

2.改写

通过查看库函数,设计函数:形参为两个字符串的地址,将source中的字符串拷贝到destination中

设计代码如下:

void my_strcpy(char * dest ,char src)
{
    *dest = *src;
    dest++;
    src++;
}

指针++,直到遇到字符 "\0"停止 ---------> 使用while循环

void my_strcpy(char * dest ,char * src)
{
    while( *src != '\0')
    {
        *dest = *src;
        dest++;
        src++;
    }
// 最后一步,src = \0'
    *dest = *src ;
}

优化代码:将'\0'和前面字符串合并为一步,后置++ ,先解引用再指针移动,可以直接将while循环中的条件修改如下:

while(*dest++ = *src++)

对比库函数中的形参有const,具体const作用:

const类似于一个紧箍咒,修饰变量可以限制变量不被修改。

const放在指针左边:const * p  表示指针指向的内容不能通过指针修改,但是指针指向的变量本身可以修改

const放在指针右边: * const int a 表示指针变量本身不能修改,但是指针指向的内容可以通过指针修改

const修饰source,则表明source不能被修改

对于遇到source为一个空指针,则可以用assert避免这种err

总结

本文主要介绍自己写strcpy的思路,技术有限多多包涵。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值