/模拟实现strcpy/
/*
strcpy的功能是将一个字符串的内容复制到另
一个字符串中,两者的长度(包括’\0’)必须相等,
若前者的长度小于后者,则复制失败.
/
/
库函数中的strcpy()实现方法
复制字符串函数(两字符串长度必须相等)
char* Strcpy(char* dest, const char* src){
assert(dest != NULL && src != NULL); //断言判断指针dest和指针src的指向不为空
while ((*dest++ = *src++) != '\0'); //当指针的指向的内容不为'\0'时,将src指向的内容赋给的dest
return dest;
}
个人模拟的strcpy函数
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
//复制字符串函数(两字符串长度可不相等,复制长度以dest的长度为准)
char* Strcpy(char* dest, const char* src){ //参数可以是字符数组也可以是字符指针
if (dest == NULL && src == NULL){ //指针的指向不能为空
return NULL; //返回值为空
}
while (*dest != '\0' && *src != '\0'){ //当指针dest和src的指向内容不为'\0'
*dest = *src; //将src的内容复制给dest
dest++; //指针dest向后移
src++; //指针src向后移
}
if (*src != '\0') { //若src未复制完
printf("复制所需的字符串数组的长度不够.\n");
}
return dest;
}
//主函数
int main(){
char str1[] = "hehe"; //定义字符串并初始化
char str2[] = "hahah"; //定义字符串并初始化
Strcpy(str1, str2); //调用复制字符串函数
system("pause");
return 0;
}
本文深入探讨了字符串复制函数strcpy的两种实现方式:一种是库函数的实现,要求两个字符串长度相等;另一种是个人模拟实现,允许目标字符串长度小于源字符串,但以目标字符串长度为准进行复制。通过具体代码示例,展示了如何使用这些函数。
1304

被折叠的 条评论
为什么被折叠?



