编程实现strcpy和memcpy函数
来源:互联网 发布:淘宝名字叫什么好 编辑:程序博客网 时间:2024/06/06 03:45
首先需要了解strcpy与memcpy的区别:
(1)两者复制的内容不同。strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组,整型,结构体,类等
(2)复制的方法不同。strcpy不需要指定长度,它是遇到字符串结束符‘\0’而结束的。memcpy则是根据其第三个参数决定复制长度的。
(3)用途不同。通常在复制字符串时用strcpy;而若需要复制其他类型的数据,则一般用memcpy
已知strcpy函数的原型是:
char*strcpy(char* strDest,const char* strSrc) ;
下面是编程实现strcpy函数的例子:
#include <stdio.h>char *strcpy(char* strDest ,const char*strSrc) //实现strSrc到strDest的复制{if((strDest == NULL)||(strSrc == NULL) //判断参数strDest和strSrc的有效性{return NULL ;}char *strDestcopy = strDest ; //保存目标字符串的首地址while((*strDest++ = *strSrc++) != '\0') ; //把strSrc字符串内容复制到strDest下return strDestcopy ;}int getStrlen(const char *strDest) //实现获取strSrc字符串的长度{int len = 0 ; //保存长度while(*strDest++ != '\0') //循环直到遇见结束符'\0'为止{len++ ;}return len ;}int main(){char strSrc[] = "Hello World" ; //要被复制的源字符串char strDest[20] ; //要复制到目的字符数组int len = 0 ; //保存目的字符数组中字符串的长度len = getStrlen(strcpy(strDest,strSrc)) ; //链式表达式,先复制后计算长度printf("strDest:%s\n",strDest) ;printf("Length of strDest:%d\n",len) ;return 0 ;}
下面是编程实现memcpy函数的实例:
#include <stdio.h>void *memcpy2(void * memTo ,const void * memFrom,size_t size) {assert((memTo != NULL)&&(memFrom != NULL)) ; //memTo和memFrom必须有效char * tempFrom = (char*)memFrom ; //保存memFrom首地址char * tempTo = (char *)memTo ; //保存memTo首地址while(size-->0) //循环size次,复制memFrom的值到memTo中{*tempTo++ = *tempFrom++ ;}return memTo ;}int main(){char strSrc[] = "Hello World!" ; //将被复制的字符数组char strDest[20] ;memcpy2(strDest,strSrc,4) ; //复制strSrc的前4个字符到strDest中strDest[4] = '\0' ; //把strDest的第五个元素赋为结束符'\0'printf("strDest:%s\n",strDest) ;return 0 ;}
与strcpy不同,memcpy以参数size决定复制多少个字符(strcpy是遇见结束符‘\0’结束)。由于在主程序中只复制了strSrc的前4个字符,所以最后还应加上'\0'结束符
0 0
- 编程实现strcpy和memcpy函数
- memcpy和strcpy函数实现
- strcpy 和 memcpy两个函数的实现
- strcpy 和 memcpy两个函数的实现
- strcpy和memcpy函数的实现
- strcpy、strcmp和memcpy 函数实现
- 【19】实现strcpy和memcpy函数
- strcpy和memcpy函数的实现
- Strcpy 和 memcpy 实现
- 不调用库函数,实现strcpy函数;编程实现memcpy函数
- strcpy函数和memcpy函数
- 函数strcpy和函数memcpy
- 自我实现strcpy,memcpy函数
- 自我实现strcpy,memcpy函数
- strcpy、memcpy、strncpy函数实现
- strcpy,memcpy函数的实现
- strcpy、memcpy函数的实现
- strcpy函数和memcpy函数的实现代码
- WP_使用_FastCGI_Cache_实现高效页面缓存
- ReactiveCocoa学习篇——【上】
- 01背包问题python实现
- CentOS7下内核源码下载及编译步骤
- 如何避免SSH Secure Shell Client连接Linux超时,自动断开?
- 编程实现strcpy和memcpy函数
- android经常性错误解决
- python if判断
- 或许是_2017年_最新的_ngx_pagespeed_安装姿势
- 第三天 H5进阶
- 细粒度图像识别文章 Picking Deep Filter Responses for Fine-grained Image Recognition 阅读笔记
- 解决android libcore局部编译时`out/target/common/obj/JAVA_LIBRARIES/sqlite-jdbc_intermediates/javalib.jar'
- 静态与动态apk overlay 机制
- linux面试题