浅谈字符串处理函数(三)

前面我们谈到了strcpy和strncpy这两个函数。这两个函数都没有考虑到内存重叠,假如要考虑内存重叠,我们又该如何实现呢?所谓重叠,就是src未处理的部分已经被dst给覆盖了

memcpy的函数原型如下:void *memcpy(void *dest, const void *src, size_t n);

memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。

函数返回指向dest的指针。

函数实现如下:

void *mymemcpy(void *dst,void *src,size_t count)
{
	char *p1=(char *)dst;
	char *p2=(char *)src;
	void *ret=dst;
	while(count--)
	{
		*p1=*p2;
		p1++;
		p2++;
	}
	return ret;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C++中,可以使用scanf函数来读取字符串。在引用\[1\]中的示例代码中,使用了scanf_s函数来读取字符串。scanf_s函数的用法是scanf_s("%s", str, (unsigned int)sizeof(str)),其中str是用来存储字符串的字符数组,sizeof(str)表示str数组的大小。这样可以确保读取的字符串不会超出数组的范围。另外,在C++11中,不推荐使用scanf和gets函数,因为它们被认为是不安全的。推荐使用scanf_s和gets_s函数来读取字符串。\[2\] 另一种读取字符串的方法是使用string类。在引用\[3\]的示例代码中,使用了string类来接收字符串输入。可以使用cin对象的>>运算符来读取字符串,例如cin >> s,其中s是一个string对象。这种方法可以方便地读取包含空格的字符串。 #### 引用[.reference_title] - *1* *2* [浅谈C/C++字符串输入scanf、gets、cin、getline、getchar](https://blog.csdn.net/qq_14824921/article/details/124356747)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [C/C++ 中输入字符串的几种方式](https://blog.csdn.net/m0_64604482/article/details/129249732)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值