近期由于memcpy字符串的时候,没有将结束符拷贝进去,导致字符串结尾有乱码,如图:

 std::ostringstream osg;osg.str("");osg << "<root>";string  p = osg.str();int len = strlen(p.c_str());char * buffer = new char[len];memcpy(buffer, p.c_str(), len);

又来找到原因为,new内存的时候,内存长度应该包括字符串结束符'\0'的长度,而strlen(),计算的长度是有效长度,没有包括'\0',所以在memcpy的时候,

会导致结尾的乱码。正确的代码应该这样:

 std::ostringstream osg;osg.str("");osg << "<root>";string  p = osg.str();int len = strlen(p.c_str());char * buffer = new char[len+1];memcpy(buffer, p.c_str(), len+1);

这次在这里吃了苦头。

字符拷贝时字符串结束符'\0'很重要相关推荐

  1. C笔记之NULL和字符串结束符'\0'和EOF

    一.NULL NULL是一个宏,它在几个标准头文件中定义,0是一个整型常量,'\0'是一个字符常量,而NUL是一个字符常量的名字.这几个术语都不可互换. 1.NULL用于表示什么也不指向,也就是空指针 ...

  2. C语言学习笔记——字符串结束符\0

    C语言中的字符串结束符\0标志着字符串的结束,由编译器自己加上的,ASCII值为0,表示NULL,ASCII中有很多不可见字符由转义字符\和可见字符来标识的,当然可见字符也能用转义字符表示.

  3. 学习笔记------关于字符串结束符'\0'、字符串定义方法

    字符串定义方法 有2种方法: 1)字符数组 2)字符指针 初始化 1)字符数组方式初始化大致3种: (1)   char str[10]="12345"或者char str[10] ...

  4. 关于字符串结束符'\0'、字符串定义方法

    字符串定义方法 有2种方法: 1)字符数组 2)字符指针 初始化 1)字符数组方式初始化大致3种: (1)   char str[10]="12345"或者char str[10] ...

  5. C语言中字符串结束符'\0'

    本质 '\0'就是8位的00000000,因为字符类型中并没有对应的这个字符,所以这么写.'\0'就是 字符串结束标志. '\0'是转义字符,意思是告诉编译器,这不是字符0,而是空字符.空字符\0对应 ...

  6. C语言: 字符串结束符 ‘ \0 ’

    1.本质 '\0'是字符串结束标志,不计入串长,但要占内存空间. '\0'是一个ASCII控制字符,是转义字符.意思是告诉编译器,这不是字符0,而是空字符.空字符\0对应的二进制为0000 0000, ...

  7. 关于字符串结束符'\0'

    字符串结束符:'\0',其本质就是8位的 0000 0000,而字符类型中并没有这个字符(注意与ASCLL码区别,在ASCLL中000--代表NULL).  所以用0的转意来表示,其意义是字符串的结束 ...

  8. c/c++ 语言中的字符串结束符 '\0'

    字符在内存中的存储是ASCII值存储, '\0' 是 c/c++ 语言中的字符串结束符,在ASCII字符集中对应空字符NULL,数值为0.其作用是识别字符串,简化字符串处理过程.在使用过程中要为其分配 ...

  9. C语言中的字符串结束符'\0'

    字符串以'\0'结尾,作为对字符串长度识别的标志,'\0'在ASCLL码表中代表NUL,十进制为0. 我写了一个函数,大致功能是将字符串A复制到字符串B中(此时B中为空),返回复制后NUL在B中的地址 ...

最新文章

  1. GLPI生成中文PDF报表
  2. 使用CSS实现三栏自适应布局(两边宽度固定,中间自适应)
  3. python培训班一般多少钱-广州Python培训机构一般多少钱
  4. Java基础day23
  5. apache camel_Apache Camel简介
  6. 带权图的最短路径算法(Dijkstra)实现
  7. lua table insert_超详细的sysbench oltp-数据库性能测试中lua脚本解剖
  8. flash 围棋_17岁攻读剑桥计算机,围棋只有业余一段,研发阿尔法狗战胜柯洁
  9. VUE day_08(7.26)学子商城项目详细版
  10. linux安装ralink驱动程序,Linux 安装 FW150UM/RALINK 无线网卡
  11. 计算机大类专业分流问题,2019级计算机大类专业分流实施细则
  12. 目前最值得入手的蓝牙耳机有哪些?四款高性价比蓝牙耳机推荐
  13. 最美的十大经典爱情句子{转}
  14. 每日一练-10-求矩阵主对角线及副对角线元素的和
  15. Android获取定位经纬度
  16. android实现拍照、相册选图、裁剪功能,兼容7.0以及小米
  17. mysql 内部 临时表_MySQL内部临时表策略 - Mr.南柯 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  18. 云服务器 文件管理,云服务器如何管理文件
  19. ubuntu 命令笔记
  20. 业财一体化升级设计说明

热门文章

  1. Render Hell —— 史上最通俗易懂的GPU入门教程(二)
  2. 现代控制理论——最优控制理论
  3. 【无人机】【2007.09】小型无人机通信链路可靠性研究
  4. js 判断字符串内容为数组或对象
  5. 前端一些特殊的bug问题收集
  6. echarts热力背景图_echarts 热力图
  7. 腾讯云-Centos7.2-搭建饥Steam荒服务器踩坑
  8. CentOS6.5修改主机名
  9. Android 设置飞行模式,判断是否是飞行模式
  10. ogc是一个非营利性组织_非营利组织的16个最佳WordPress插件