c语言模拟实现strcpy

本文介绍了如何在C语言中模拟实现strcpy函数,通过详细步骤解释了如何将一个字符串数组的值复制到另一个数组,包括两种不同的实现方法,强调了在复制过程中赋值''的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//模拟实现strcpy

   概念:

             //strcpy(str1,st2)将数组str2的值复制到数组str1

    解题思路:整体比较简单

                   1> 将数组里的值一个个拷贝到另个数组;

                   2> 打印数组里的每一个值。

源代码:

#include<stdio.h>
#include<stdlib.h>

//3.模拟实现strcpy
//strcpy(str1,st2)将数组str2的值复制到数组str1

void Copy(int* arr1, int* arr2, int len)
{
	int i = 0;
	printf("arr1=");
	for (i = 0; i < len; i++)
	{
		arr1[i] = arr2[i];
		printf("%d ", arr1[i]);
	}
	printf("\n");
	printf("arr2=");
	for (i = 0; i < len; i++)
	{
		printf("%d ", arr2[i]);
	}
	printf("\n");
}
int main()
{
	int arr1[] = { 0 };
	int arr2[] = { 1, 2, 3, 4 };
	int len = sizeof(arr2) / sizeof(arr2[0]);
	Copy(arr1, arr2, len);
	system("pause");
	return 0;
}

运行结果:

                            

另一种方法:

      简单说明一下思路:这种方法比较简单,使用指针变量将字符串数组里面的值得一个个赋值,最后注意'\0'不要忘记赋值,不然dest就不会只打印完拷贝的字符,继续往后打印直到遇到'\0'才停止打印。

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>

//1.实现strcpy

char* Mystrcpy(char* dest, const char* src)
{
        //判断src是否为空字符串,如果为空终止程序
	assert(src != NULL);
	char* ret = dest;
        //将src中的字符一个个赋值到dest
        //注意没有赋值'\0'
	while (*dest = *src)
	{
		++dest;
		++src;
	}
        //将'\0'赋值到dest的最后一位
	*dest = '\0';
	return ret;
}
int main()
{
	char src[] = "abcd";
	char dest[100];
	Mystrcpy(dest, src);
	printf("%s\n", dest);
	system("pause");
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值