C语言实用算法系列之memcpy、memmove函数原理与实现

直接看代码

#include<stdio.h>
#include<string.h>
/*返回指向pDest的指针*/
void* MemCopy(void* pDest, const void* pSrc, int nCount)
{char* p = (char*)pDest;char* p1 = (char*)pSrc;while (nCount--)*p++ = *p1++;return pDest;
}
/*返回指向pDest的指针,分有重叠和无重叠两种情况*/
void* MemMove(void* pDest, const void* pSrc, int nCount)
{char* dest = (char*)pDest;char* src = (char*)pSrc;if (dest > src && dest < src + nCount){//有重叠src += nCount;dest += nCount;while (nCount--)*--dest = *--src;}else{//无重叠while (nCount--)*dest++ = *src++;}return pDest;
}char str1[7] = "aabbcc";int main(void)
{printf("The string: %s\n", str1);MemMove(str1 + 2, str1, 4);printf("New string: %s\n", str1);strcpy_s(str1, sizeof(str1), "aabbcc");   // reset stringprintf("The string: %s\n", str1);memmove(str1 + 2, str1, 4);printf("New string: %s\n", str1);
}

输出结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/347257.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最小拍无纹波系统仿真实验(计控实验五simulink)

一、实验目的与要求 1、掌握最小拍无纹波系统的计算机控制脉冲传函D(z)的设计方法。 2、掌握SIMULINK的仿真方法。 二、仿真软硬件环境 PC机&#xff0c;MATLAB R2012b。 三、实验原理 如图 R为输入&#xff0c;C为输出。计算机定时采样&#xff0c;计算误差E&#xff0c;按D…

Oracle ADF和Oracle Jet一起工作。 建筑模式

在本文中&#xff0c;我将考虑在Oracle ADF和Oracle Jet的组合之上实现应用程序的各种体系结构模式。 练习ADF的组织可能会考虑将Oracle Jet合并到现有项目中&#xff0c;以刷新外观并使其具有现代感和响应能力&#xff0c;并以新方式实施新功能。 它可能会考虑将Oracle Jet用于…

基本指令的编程练习-PLC认识实验-定时器/计数器功能实验

微信公众号&#xff1a;创享日记 发送关键词&#xff1a;plc1 免费获取完整无水印实验报告 【PLC认识实验】 一、实验目的 1.了解PLC软硬件结构及系统组成; 2.掌握PLC外围直流控制及负载线路的接法及上位计算机与PLC通信参数的设置; 3.了解编程软件的编程环境&#xff0c;掌握软…

C语言实用算法系列之strtok字符串分割、strcat字符串拼接、strcpy、strcmp

代码 #define _CRT_SECURE_NO_WARNINGS#include <string.h> #include <stdio.h>char string[] "A string\tof ,,tokens\nand some more tokens"; char seps[] " ,\t\n"; char *token;int main(void) {printf("Tokens:\n");// Es…

电动机正反转继电器控制系统

微信公众号&#xff1a;创享日记 发送关键词&#xff1a;plc2 免费获取完整无水印实验报告 一、实验目的 1&#xff0e;学习和掌握电动机主回路的设计及接线&#xff1b; 2&#xff0e;学习和掌握电动机控制回路的设计及联锁保护方法&#xff1b; 3&#xff0e;加深对电气控制系…

电子技术课程设计-正弦波发生及频率显示电路-电子线路CAD原理图

微信公众号&#xff1a;创享日记 发送关键词&#xff1a;电子技术课设 免费获取完整无水印实验报告付费电子线路CAD原理图源文件及其导入教程 前些天发现了十分不错的人工智能学习电子书&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;没有广告&#xff0c;分享给大家&a…

C语言实用算法系列之学生管理系统_对整个结构体操作_冒泡排序

代码 #define _CRT_SECURE_NO_WARNINGS#include <stdio.h> #include <string.h> void Save();struct SUser // 结构体定义 {int nNumb; // 学号char sName[20]; // 姓名float fMath; // 数学成绩 }g_user[100];void Print() // 打印子函数 {puts("\n学号\t姓…

PLC 控制三相异步电动机正反转实验

前些天发现了十分不错的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;没有广告&#xff0c;分享给大家&#xff0c;大家可以自行看看。&#xff08;点击跳转人工智能学习资料&#xff09; 微信公众号&#xff1a;创享日记 发送关键词&#xff1a;plc3…

功能Java示例 第4部分–首选不变性

这是称为“ Functional Java by Example”的系列文章的第4部分。 在上一部分中&#xff0c;我们讨论了一些副作用&#xff0c;并且我想进一步详细说明如何通过将不可变性引入代码中来防止以意外的方式操纵数据。 如果您是第一次来&#xff0c;最好是从头开始阅读。 它有助于…

C语言实用算法系列之学生管理系统_对整个结构体操作_选择排序_提取排序规则

代码 #define _CRT_SECURE_NO_WARNINGS#include <stdio.h> #include <string.h> #include <stdlib.h> void Save();struct SUser {int nNumb;char sName[20];float fMath; }g_user[100];void Print() {puts("\n学号\t姓名\t数学");int i 0;while…

Altium Designer19(AD19)

微信公众号&#xff1a;创享日记 发送关键词&#xff1a;Altium 免费获取Altium Designer19 1、解压文件 2、解压后打开安装文件&#xff08;AD19 setup.exe&#xff09; 3、点击next 4、选择中文并接受协议 5、选择功能&#xff0c;Next 6、选择文件保存路径与安装路径&…

仿真proteus8.7安装

前些天发现了十分不错的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;没有广告&#xff0c;分享给大家&#xff0c;大家可以自行看看。&#xff08;点击跳转人工智能学习资料&#xff09; 微信公众号&#xff1a;创享日记 发送关键词&#xff1a;prot…

C语言实用算法系列之学生管理系统_对整个结构体操作_冒泡排序_提取排序规则

代码 #define _CRT_SECURE_NO_WARNINGS#include <stdio.h> #include <string.h> #include <stdlib.h> void Save();struct SUser {int nNumb;char sName[20];float fMath; }g_user[100];void Print() {puts("\n学号\t姓名\t数学");int i 0;while…

servlet 异常处理_Servlet异常和错误处理示例教程

servlet 异常处理有时候我写了一篇有关Java异常处理的文章&#xff0c;但是当涉及到Web应用程序时&#xff0c;我们需要的不仅仅是Java中的异常处理。 Servlet异常 如果您注意到&#xff0c;doGet&#xff08;&#xff09;和doPost&#xff08;&#xff09;方法将抛出ServletE…

基于51单片机直流电机PWM控制器设计

前些天发现了十分不错的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;没有广告&#xff0c;分享给大家&#xff0c;大家可以自行看看。&#xff08;点击跳转人工智能学习资料&#xff09; 由STC89C52单片机、LCD1602液晶显示屏、霍尔测速传感器、3V直…

大林算法控制仿真实验(计控实验六simulink)

前些天发现了十分不错的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;没有广告&#xff0c;分享给大家&#xff0c;大家可以自行看看。&#xff08;点击跳转人工智能学习资料&#xff09; 微信公众号&#xff1a;创享日记 发送关键词&#xff1a;计控…

振铃的消除仿真实验(计控实验七simulink)

前些天发现了十分不错的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;没有广告&#xff0c;分享给大家&#xff0c;大家可以自行看看。&#xff08;点击跳转人工智能学习资料&#xff09; 微信公众号&#xff1a;创享日记 发送关键词&#xff1a;计控…

基于触摸屏PLC的温度采集及简单控制

微信公众号&#xff1a;创享日记 发送关键词&#xff1a;plc4 免费获取完整无水印实验报告及源文件 一、实验目的 1、掌握模拟量输入输出的编写方法&#xff1b; 2、了解触摸屏画面编辑及组态的方法。 二、实验设备 三、实验步骤 1、如图所示&#xff0c;编辑触摸屏画面并定义…

OSI模型七层

OSI将计算机网络体系结构(architecture&#xff09;划分为以下七层&#xff1a; 一、应用层&#xff08;快递物品本身&#xff09; 网络服务接口&#xff0c;定义程序间通信标准&#xff0c;应用层协议&#xff08;HTTP…&#xff09; 二、表示层&#xff08;打包&#xff09…

内存heap_哪个内存更快?Heap或ByteBuffer或Direct?

内存heapJava正在成为新的C / C &#xff0c;它被广泛用于开发高性能系统。 对像我这样的数百万Java开发人员来说非常好&#xff01; 在这个博客中&#xff0c;我将分享我可以用Java完成的不同类型的内存分配的实验&#xff0c;以及从中获得什么好处。 Java中的内存分配 Java…