问题描述:
编写一个my_strcpy函数实现将一个字符串复制到另一个字符串数组中,并且输出这个额字符串。
程序分析:
要想实现把str2中的元素全部复制到1中去:
首先,将数组str1的首地址保存起来,作为函数的返回值,通过这个返回值将整个字符串输出;
其次,将str2中的元素全部复制到str1中去,直到str2中出现‘\0’;
最后,很重要的一点是在复制完之后要给str1的后面赋一个‘\0’。
代码如下:
#include
#include
char *my_strcpy(char *str1,char *str2) //定义一个函数
{
assert(str1); //保证str1和str2的非空
assert(str2);
char *ret = str1; //定义一个ret保存str1最初值
while(*str2 != '\0' ) //判断复制是否结束
{
*str1 = *str2; //将数组2中的各元素一次复制到1中
str1++;
str2++;
}
*str1 = '\0'; //给复制完的数组1加上‘\0’表示结束
return ret;
}
int main()
{
char str1[100] = "ctf";
char str2[] = "abcdef";
printf("%s\n",my_strcpy(str1,str2)); //调用函数,并输出复制 后的结果
return 0;
}