两个字符串之间的复制,不使用strcopy()函数

1.strcopy()函数
  • strcopy()函数只提供字符串的复制。即strcopy()只用于字符串之间的复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。
#include <iostream>


using namespace std;

// 两个字符串之间的复制

char* strcopy(char* dest, char* src){
	if(dest == NULL || src == NULL) return NULL;
	
	char* res = dest;
	
	while((*dest++ = *src++) != '\0');
	return res;
} 

int main(){
	char cc[100];
	cout << "请输入一个字符串:"; 
	cin >> cc;
	char* src = cc;
	char* dest = new char[100];   // 新开辟一段内存空间 
	cout << "源字符串: " << src << endl;
	dest = strcopy(dest, src);
	cout << "目标字符串: " << dest << endl;
	
	return 0;
}
2.memcpy()函数
  • memcpy()提供了一般内存之间的复制。即memcpy对于需要复制的内容没有限制,因此用途更广。
void *memcpy(void* dest, const void* src, size_t size)
{
    if(dest == nullptr || src == nullptr) return nullptr;

    char* tempSrc = (char*) src;
    char* tempDest = (char*) dest;
    
    while(size--)
    {
        *tempDest++ = *tempSrc++;
    }
    return tempDest;
}
3.两者之间的区别
  • 复制的内容不同:strcpy只复制字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等。
  • 复制的方法不同:strcpy不需要指定长度,它遇到被复制的字符串结束符\0才结束,所以容易溢出,而memcpy则根据第3个参数决定复制的长度。
  • 用途不同:通常在复制字符串时用strcpy,而需要复制其他类型数据时一般用memcpy。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值