strcpy和memcpy的区别

转载:http://www.cnblogs.com/stoneJin/archive/2011/09/16/2179248.html

strcpy与memcpy都是标准的C库函数,strcpy提供了字符串的复制。即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符。

已知strcpy函数的原型是:char* strcpy(char* dest, const char* src);
memcpy提供了一般内存的复制。即memcpy对于需要复制的内容没有限制,因此用途更广。

void *memcpy( void *dest, const void *src, size_t count );

char* strcpy(char* dest,const char*src)
{if (dest==NULL||src==NULL){return NULL;}char* pdest=dest;while((*dest++=*src++)!='\0');return pdest;
}
void* memcpy(void* dest,const void*src,size_t count)
{assert(dest!=NULL&&src!=NULL);char* pdest=(char*)dest;char* psrc=(char*)src;while(count-->0){*pdest++=*psrc++;}
return dest;
}
二者的区别在于:

1.复制的内容不同。strcpy只能用于字符串的复制,而memcpy可以复制任何内容,例如字符数组,整型,结构体,类等。

2.复制的方法不同。strcpy不需要指定复制的长度,一直复制到遇到字符串结束符\0结束,而memcpy则是根据第三个参数决定复制的长度。

3.用途不同。通常在复制字符串时用strcpy;而若复制其它类型数据,则一般用memcpy.





































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

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

相关文章

js正則表達式语法

1. 正則表達式规则 1.1 普通字符 字母、数字、汉字、下划线、以及后边章节中没有特殊定义的标点符号,都是"普通字符"。表达式中的普通字符,在匹配一个字符串的时候,匹配与之同样的一个字符。 举例1:表达式 "c&q…

计算机常见屏幕英语语句,计算机常见屏幕英语

计算机系统常见的屏幕英语对照,。、计算机常见屏幕英语(SCREEN ENGLISH)access 访问 data 数据 hard disk 硬盘 files 文件directory 目录 delete 删除(同:remove) exists 存在 name 名称 read-only 只读 change 修改,改变 save 保存 password 密码 conn…

[转]Windows Phone 7程序设计”完全版电子书可以免费下载了

本文转自:http://www.cnblogs.com/salam/archive/2010/10/29/1864246.html 现在学习Windows Phone 7开发资料十分有限,除了MSDN的官方开发文档外和一些博客外,几无其他的学习渠道。幸运地是美国的资深程序员兼作家Charles Petzold为大家免费放…

土豆春季实习试题之惨烈教训

今天做土豆的春季C实习生招聘试题,很多不应该错的错了,在此挑出一些重要的错误,供自己参考,以免以后再犯。 一、一道编程题,很简单,但是错了。 题目: 输入一个数组,求它的逆序数组…

linux-redhat替换yum网络源为centos网络源

2019独角兽企业重金招聘Python工程师标准>>> 1.为什么要替换 redhat系统使用yum命令安装软件时会出现This system is not registered with RHN. RHN support will be disabled. 原因是redhat的yum安装软件需要注册,是收费的。而centos的yum源是免费的。这…

计算机如何打开无线网络适配器,win7系统下网络适配器打不开怎么解决

通常情况下我们的电脑中都会有一个网络适配器,这是计算机联网的设备,不过最近有深度技术win7旗舰版系统用户却遇到了网络适配器打不开的情况,该怎么办呢,接下来系统城小编就给大家分享一下win7系统下网络适配器打不开的具体解决方…

cf13C Sequence(DP)

题意: N个数。a1...aN。 对于每个数而言,每一步只能加一或减一。 问最少总共需要多少步使得新序列是非递减序列。 N (1 ≤ N ≤ 5000) 思路: *一个还不知道怎么证明的结论(待证):最后的新序列b1...bN中…

【华为OD机试真题2023CD卷 JAVAJS】求幸存数之和

华为OD2023(C&D卷)机试题库全覆盖,刷题指南点这里 求幸存数之和 知识点数组 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: 给一个正整数列 nums,一个跳数 jump,及幸存数量 left。运算过程为:从索引为0的位置开始向后跳,中间跳过 J 个数字,命中索引为J+…

JavaScript编码规范

1. 变量命名规范 变量名包括全局变量,局部变量,类变量,函数参数等等,他们都属于这一类。 基本规范 变量命名都以类型前缀有意义的单词组成,单词首字母都需要大写。例如:sUserName,nCount。 前缀…

大数据相加(转载)

转载:http://www.du52.com/text.php?id411 在这个大数据的年代里,我们不可避免会遇到两个超越正常数据类型(如int,long,long long)的整数相加。显然两个大数据已经不能使用传统的加号直接相加,但是相加的原理仍然是不…

微型计算机中使用的光盘应属于什么媒体,计算机应用基础练习题

计算机应用基础一、判断题1、微型机中硬盘工作时,应特别注意避免强烈震动【是】2、在Windows中,文件夹或文件的换名只有一种方法【否】3、用户在连接网络时,只可以使用域名,不可以使用IP地址【否】4、在WORD2007中,您可…

七天学会SALTSTACK自动化运维 (3)

七天学会SALTSTACK自动化运维 (3) 导读SLSTOP.SLSMINION选择器SLS文件的编译总结参考链接导读 SLS SLS (aka SaLt State file) 是 salkstack 中非常基础和重要的一种配置文件. 重要程度仅次于minion和 master 的主配置文件(或者说是一种数据结构,使用yaml编写), 因…

qt-embedded-linux-opensource-src-4.5.3移植到s3c6410

首先要有配置好的环境,本文使用的编译环境如下: 主机系统:Ubuntu 9.10 主机编译器:gcc 版本 4.4.1 交叉编译器:arm-linux-gcc-4.0.1 软件资源:qt-embedded-linux-opensource-src-4.5.3.tar.gz qt-x11-opens…

C++ 类中特殊的成员变量(常变量、引用、静态)的初始化方法

<p style"line-height: 19px; margin: 10px auto; color: rgb(75, 75, 75); font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 13px;">有些成员变量的数据类型比较特别&#xff0c;它们的初始化方式也和普通数据类型的成员变量有所不同…

【Intellij Idea】设置JDK

1&#xff0c;File-->Project Structure 说明&#xff1a;可以设置整个工程的JDK&#xff0c;也设置每个modules的JDK,但是一般整个工程的JDK. 2&#xff0c;或者通过快捷键&#xff1a;ctrlaltshifts 转载于:https://www.cnblogs.com/august-shi/p/6655469.html

c#操作html dom元素,C#获取与修改HTML DOM元素信息

用C#和JavaScript交互首先要解决C#读取HTML DOM元素的问题。 在System.Windows.Browser命名空间下&#xff0c;有一个HtmlDocument、HtmlPage、HtmlElement等类&#xff0c;可以用来读取HTML DOM元素。其读取方法和JavaScript如出一辙。引用内容&#xff1a; //初始化一个docum…

Hibernate之工具类HibernateUtil

原创文章&#xff0c;转载请注明&#xff1a;Hibernate之工具类HibernateUtil By Lucio.Yang 1.最简单的工具类&#xff0c;实现SessionFactory的单例共享&#xff0c;session的管理 package com.cc.hibernate;import org.hibernate.Session; import org.hibernate.SessionFac…

c++读取文件–结束条件的判断

转载&#xff1a;http://blog.sina.com.cn/s/blog_623e3c050100neei.html 在使用C/C读文件的时候&#xff0c;一定都使用过eof&#xff08;&#xff09;这个函数来判断文件是否为空或者是否读到文件结尾了&#xff0c;也会在使用这个函数的过程中遇到一些问题&#xff0c;如不…

绘图用计算机配置要求,绘图笔记本电脑基本配置要求 绘图笔记本推荐

现在很多工业图、工程图都需要用电脑来话&#xff0c;比如CAD、PS、三维画图这些软件对电脑的配置要求还是比较高的&#xff0c;还有一些对色彩要求高的动画软件&#xff0c;那就更加需要配置了&#xff0c;下面小编就来简单说说绘图笔记本电脑最基本的配置要求以及绘图笔记本推…

关于dllimport的使用

最近做一个动态加载插件的项目&#xff0c;插件中的dll 主要是各厂商各型号的读卡器的通用类库&#xff0c;stdapi.dll&#xff0c;WltRS.dll&#xff0c;有的还有进一步封装的dll&#xff0c;主要是为了简化通用类库的操作。 这些类库都是用C语言&#xff0c;或者C来编写的&am…