一道非常简单的手撕题目:使用C实现strcpy

今天想和大家分享一道非常简单、但面试里几乎必问的手撕题 —— 实现 strcpy。虽然它看起来像是入门级的题目,但真正写起来却能看出很多细节上的问题。我第一次在面试中遇到它时,也以为只是随手写个循环就能过,结果面试官几句话就把我问住了。后来我才明白,越是简单的题,越能体现一个人的编程习惯和基础是否扎实。所以这次就把这道题和我踩过的坑整理出来,希望能帮到正在准备面试的你。

#include <stdio.h>

// 最简版strcpy:完成字符串拷贝核心功能
char* my_strcpy(char* dest, const char* src) {
    // 保存目标字符串起始地址,用于最后返回
    char* start = dest;
    // 核心逻辑:逐个拷贝字符,直到遇到字符串结束符'\0'
    while (*src != '\0') {
        *dest = *src;
        dest++;
        src++;
    }
    *dest = '\0'; // 手动添加结束符,保证字符串完整性
    return start; // 返回目标地址,符合标准库设计
}

// 测试代码
int main() {
    char dest[20];
    char src[] = "hello strcpy";
    my_strcpy(dest, src);
    printf("拷贝结果:%s\n", dest); // 输出:拷贝结果:hello strcpy
    return 0;
}

#一人分享一道面试手撕题#
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务