登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

图像处理 视频分析 机器视觉 模式识别

方向比努力更重要

 
 
 

日志

 
 
关于我

河北软件开发项目,电子警察卡口项目,公安天网项目,媒体流处理,数字图像处理。媒体服务器 RTSP、图像处理、车牌识别……DCT变换,H.264压缩

memcpy与strcpy  

2009-08-19 13:11:08|  分类: C + 算法 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

// strncpy(UdpPack.data,(char *)(&(theApp.m_curLiuyanLog)),sizeof(LIUYANLOG));
// if((char *)(&(theApp.m_curLiuyanLog))){MessageBox("留言不为空");}
 memcpy(UdpPack.data, (char *)(&(theApp.m_curLiuyanLog)),sizeof(LIUYANLOG));

晕死,不知道为什么用strncpy什么都复制不进去,只能用memcpy。

strcpy是拷贝字符串,以\0为标志结束(即一旦遇到数据值为0的内存地址拷贝过程即停止)
strcpy的原型为
char *strcpy(char *dest, const char *src)
而memcpy是给定来源和目标后,拷贝指定大小n的内存数据,而不管拷贝的内容是什么(不仅限于字符)
memcpy的原型为
void *memcpy(void *dest, const void *src, size_t n);

#include <iostream>
#include <string.h>
using namespace std;

int main()
{
const int MaxLength = 20;
char String1[] = "No man is an islands!";
char String2[MaxLength+1];

strncpy(String2,String1,MaxLength);

String2[MaxLength]=NULL;//改了这里!
/*原因:
    char * strncpy(char *s1,char *s2,size_t n);
  将字符串s2中最多n个字符复制到字符数组s1中,返回指向s1的指针。
  注意:如果源串长度大于n,则strncpy不复制最后的'\0'结束符,所以是不安全的,复制完后需要手动添加字符串的结束符才行。

*/
cout << "String1: " << String1 << endl;
cout << "String2: " << String2 << endl;

return 0;
}

  评论这张
 
阅读(2375)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018