strcpy、strncpy、memcpy的区别
一、strcpy、strncpy区别
struct gpInfo
{
char gpcode[9];
char gpName[50];
}; string gpstr = "SZ000001";
string Name = "平安银行" gpInfo gpOne;
strncpy(gpOne.gpcode,gpstr.c_str(),8);
strncpy(gpOne.gpName,Name.c_str(),49); //strcpy不仅复制字符串内容,还会复制字符串的结束符。
//strncpy不会自动拷贝'\0'结束符。"SZ000001"占8个字节,所以在结构体定义的时候,char gpcode[9]至少要多给一个字节为9,不然会导致乱码。
二、strcpy、memcpy区别
strcpy和memcpy主要有以下3方面的区别。
1、复制的内容不同。strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等。
2、复制的方法不同。strcpy不需要指定长度,它遇到被复制字符的串结束符"\0"才结束,所以容易溢出。memcpy则是根据其第3个参数决定复制的长度。
3、用途不同。通常在复制字符串时用strcpy,而需要复制其他类型数据时则一般用memcpy
#define MAX_REMOETCALC 16
struct BsValInfo
{
short set;
char code[7];
float f[MAX_REMOETCALC]; BsValInfo()
{
memset(this,0,sizeof(BsValInfo));
}
}; string sCode = "0000001";
string sMarket = sCode.substr(0,1);
short shtMarket = atol(sMarket.c_str());
const char * stockinfo = sCode.c_str();
float f[16] = {0};
for (int i = 0; i < MAX_REMOETCALC; i++)
{
f[i] = i;
} BsValInfo bsone;
bsone.set = shtMarket;
strcpy(bsone.code, stockinfo+1);//strcpy
memcpy(bsone.f, f, MAX_REMOETCALC*sizeof(float));//memcpy
strcpy、strncpy、memcpy的区别的更多相关文章
- strcpy与memcpy的区别
strcpy和memcpy的区别 strcpy和memcpy都是标准C库函数,它们有下面的特点. strcpy提供了字符串的复制.即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制 ...
- strcpy和memcpy的区别(转载)
strcpy和memcpy都是标准C库函数,它们有下面的特点.strcpy提供了字符串的复制.即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符. 已知strcpy函 ...
- 【转】 strcpy和memcpy的区别
strcpy和memcpy都是标准C库函数,它们有下面的特点.strcpy提供了字符串的复制.即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符. 已知strcpy函 ...
- strcpy和memcpy的区别
strcpy和memcpy都是标准C库函数,它们有下面的特点.strcpy提供了字符串的复制.即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符. 已知strcpy函 ...
- [置顶] strcpy和memcpy的区别
strcpy和memcpy都是标准C库函数,它们有下面的特点. strcpy提供了字符串的复制.即strcpy只用于字符串复制,并且它不仅复制字符串内容,还会复制字符串的结束符. 已知strcpy函数 ...
- sprintf、strcpy 及 memcpy 函数区别
这些函数的区别在于 实现功能 以及 操作对象 不同.strcpy 函数操作的对象是 字符串 ,完成 从 源字符串 到 目的字符串 的 拷贝 功能. sprintf 函数操作的对象 不限于字符串 :虽然 ...
- strcpy和memcpy的区别(转)
转自:http://www.cnblogs.com/stoneJin/archive/2011/09/16/2179248.html strcpy和memcpy都是标准C库函数,它们有下面的特点.st ...
- strcpy和memcpy的区别-(转自stone Jin)
strcpy和memcpy都是标准C库函数,它们有下面的特点.strcpy提供了字符串的复制.即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制字符串的结束符. 已知strcpy函 ...
- sprintf、strcpy和memcpy的区别
做某题用到了sprintf把一个字符数组(字符串)写到二维字符数组里,然后耗时挺长的,想了想strcpy好像也可以,事实证明strcpy效率果然更高,然后想了想觉得memcpy好像也可以.实践了一下的 ...
- strcpy和memcpy,memmove函数的区别
strcpy和memcpy的区别 strcpy和memcpy都是标准C库函数,它们有下面的特点. strcpy提供了字符串的复制.即strcpy只用于字符串复制,并且它不仅复制字符串内容之外,还会复制 ...
随机推荐
- Xfire实现webservice各种报错详解
一.No write method for property {http://vo.aa.com}new in class com.aa.vo.TA 使用xfire的ws调用时,会将对象与xml进行捆 ...
- unity, Find References In Scene
材质,脚本,shader等都可以通过Find References In Scene查看引用情况,如图. 当对一个文件点击Find References In Scene后,搜索命令会显示到Scene ...
- vim:修改光标的显示
我比较习惯vim下光标显示为一条竖线,这样的好处是可以准确的知道光标的位置.但有的时候光标表现为一个方块.这个是可以修改改地. 终端下: 终端下这个和终端的光标设置有关,只要修改了终端中光标的显示,v ...
- [svc]运维知识体系及职业
知识点: 1,运维命令基础 100个命令 三剑客 正则 2,运维基础知识 linux启动 目录结构 常见配置路径 文件属性 链接知识 权限 用户管理 磁盘管理 网络基础(配置ip路由等) 3,基础核心 ...
- 【Android】3.21 示例21—兴趣点收藏功能
分类:C#.Android.VS2015.百度地图应用: 创建日期:2016-02-04 简介:介绍如何创建.管理本地收藏的兴趣点数据 详述: (1)新建本地点收藏: (2)查看已收藏本地点: (3) ...
- Serviceability
http://hg.openjdk.java.net/jdk7u/jdk7u2/hotspot/file/6259c6d3bbb7/agent/doc/clhsdb.html http://blog. ...
- WebDriver 原理
注:学会根据执行顺序看底层代码 <以下内容摘自大师兄博客> WebDriver webdriver是按照server – client的经典设计模式设计的. webdriver的作用就是创 ...
- 每日英语:Mooncake Austerity Hits China's Mid-Autumn Festival
First baijiu, then red carpets, and now mooncakes. For Chinese government officials, the list of tab ...
- Django---ORM操作大全
前言 Django框架功能齐全自带数据库操作功能,本文主要介绍Django的ORM框架 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MyS ...
- pairRDD中算子reduceByKeyLocally
原型: def reduceByKeyLocally(func: (V, V) => V): Map[K, V] 该函数将RDD[K,V]中每个K对应的V值根据映射函数来运算,运算结果映射到一个 ...