一道非常简单的手撕题目:使用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;
}
#一人分享一道面试手撕题#