不用库函数,自己实现strcpy和memcpy函数
来源:互联网 发布:c语言获取系统当前时间 编辑:程序博客网 时间:2024/05/29 03:47
1.代码实现
char* strcpy(char* strDest, const char* strSrc)
{
ASSERT(strDest != NULL && strSrc != NULL);
char* strTmpD = strDest;
while ((*strTmpD++ = *strSrc++) != '0')
{
}
return strDest ;
}
void* memcpy(void* pDest, const void* pSrc, unsigned int size)
{
ASSERT(pDest != NULL && pSrc != NULL);
byte* pTmpD = (byte*)pDest;
byte* pTmpS = (byte*)pSrc;
while (size-- >0)
{
*pTmpD++ = * pTmpS++;
}
return pDest;
}
2.strcpy和memcpy的区别
(1).strcpy只能用于字符串拷贝;而memcpy是内存拷贝,可以拷贝任何类型的数据。
(2).当二者都进行字符串拷贝时,strcpy遇到字符串结尾'/0'即完成;而memcpy只是内存的原样拷贝,不管遇到什么。
memcpy() -- 拷贝内存内容
相关函数: bcopy(), memccpy(), memmove(), strcpy(), strncpy()
表头文件: #include <string.h>
定义函数: void *memcpy(void *dest, const void *src, size_t n)
函数说明: memcpy()用来拷贝src所指的内存内容前n个字节到dest所指的内存地址上。与strcpy()不同的是,memcpy()会完整的复制n个字节,不会因为遇到字符串结束'/0'而结束
返回值: 返回指向dest的指针
附加说明: 指针src和dest所指的内存区域不可重叠
表头文件: #include <string.h>
定义函数: void *memcpy(void *dest, const void *src, size_t n)
函数说明: memcpy()用来拷贝src所指的内存内容前n个字节到dest所指的内存地址上。与strcpy()不同的是,memcpy()会完整的复制n个字节,不会因为遇到字符串结束'/0'而结束
返回值: 返回指向dest的指针
附加说明: 指针src和dest所指的内存区域不可重叠
- 不用库函数,自己实现strcpy和memcpy函数
- 不用库函数,自己实现strcpy和memcpy函数
- 不用库函数,自己实现strcpy和memcpy函数;二者的区别
- 不用库函数实现strcpy
- memcpy和strcpy函数实现
- 不调用库函数,实现strcpy函数;编程实现memcpy函数
- 库函数strcpy、memcpy和memset
- 实现自己的strcpy和memcpy
- [C/C++笔面试]不用库函数自己实现strcpy和strncpy
- 不用库函数编写strcpy函数
- 常见的面试题如何不用库函数实现strcpy函数
- strcpy 和 memcpy两个函数的实现
- strcpy 和 memcpy两个函数的实现
- strcpy和memcpy函数的实现
- strcpy、strcmp和memcpy 函数实现
- 【19】实现strcpy和memcpy函数
- strcpy和memcpy函数的实现
- 编程实现strcpy和memcpy函数
- 写的比较好的一个介绍android的电源管理
- Stream Order Network
- 组合
- 01背包,完全背包, 多重背包
- 持续集成之路——Maven的Missing artifact问题解决
- 不用库函数,自己实现strcpy和memcpy函数
- 如何在Ubuntu上驱动腾达W541U V2.0 (RT2070)无线网卡【使用2011新驱动】
- [原创] PowerPC 汇编入门与优化
- [003] 写给准备学习Android的朋友
- Android 开机自动启动服务
- 逐行更新数据,满足条件后终止 --【叶子】
- 组合框、单选框、按钮、右键快捷菜单以及对话框的练习
- spring ioc原理 (很经典不错的一篇关于spring的文章)
- JFileFinder - 文件搜索器