您当前的位置:首页 > 计算机 > 编程开发 > C语言

自定义一个函数,实现C语言中strcpy()函数的功能

时间:12-29来源:作者:点击数:

strcpy() 函数用来复制字符串,其原型为:
    char *strcpy(char *strDest, const char *strSrc);

其中,strDest是目的字符串,strSrc是源字符串。要求不调用 strcpy() 函数,自定义函数 myStrcpy() 函数,实现与 strcpy() 函数相同的功能。

该题目考察读者的基础知识是否扎实,告诉我们,面对常用的这些函数,不能只知其然而不知其所以然。

先看代码:

#include <stdio.h>
#include <string.h>
#define STR_LEN 30
char *myStrcpy(char *strDest, const char *strSrc){
    if(strDest == NULL || strSrc == NULL)
        return NULL;
    
    if(strDest == strSrc)
        return strDest;
    char *tempptr = strDest ;
    while( (*strDest++ = *strSrc++) != '\0');
        return tempptr ;
}
int main( void ){
    char *strSrc = "http://www.baidu.com";
    char strDest[STR_LEN];
    memset(strDest,0 , STR_LEN);  // 将strDest指向的内存全部设置为 NUL
    
    printf("strDest = %s\n", strDest);
    myStrcpy(strDest, strSrc);
    printf("strDest = %s\n", strDest);
    return 0;
}

运行结果:

strDest =
strDest = http://www.baidu.com

注意:memset() 函数用来将内存设置为指定的值。memset(strDest,0 , STR_LEN); 将strDest指向的内存全部设置为 NUL,即 '\0',否则第一次输出的为垃圾内容;如果设置为其他值,第一次输出时找不到字符串结束标志 NUL,读取返回会超出 strDest 指定的内存空间。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门