重写strcpy()

    技术2026-08-03  3

    C/C++ 标准库里提供了一个 字符串操作函数 strcpy(),我们现在尝试自己利用最基本的方法重写这个函数

    #include <stdio.h>

    #include <assert.h>   //断言函数头文件

    char * mystrcpy(char * dest,char * sour);

    int main(int argc,char *argv[])

    {

    char * p = "hello world";// 指向常量的指针p,其指向的内容保持只读,不可更改,谨慎使用

    char array[20];

    memset(array,0,20);    //置空,好习惯

    mystrcpy(array,p);

    printf("%s/n",array);

    return 0;

    }

    char * mystrcpy(char * dest,char * sour)

    {

    char * address = dest;          //必须保存dest地址,用于返回,便于实现链式表达式,提高函数可用性

    assert ((dest != NULL) && (sour != NULL));     //断言检查指针是否为空

    if ( dest == sour )                //此处是可以省略的,但为了程序严谨,保留

    {

           return address;

    }

    while ( '/0' != *sour )         // 条件判断,常量写前面,可以防止写错 eg: sour == '/0'    写成 sour ='/0'

    {

               *dest++ = *sour++;

    }

    *dest = '/0';           //结束符

    return address;

    }

    最新回复(0)