字符拷贝时字符串结束符'\0'很重要
近期由于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'很重要相关推荐
- C笔记之NULL和字符串结束符'\0'和EOF
一.NULL NULL是一个宏,它在几个标准头文件中定义,0是一个整型常量,'\0'是一个字符常量,而NUL是一个字符常量的名字.这几个术语都不可互换. 1.NULL用于表示什么也不指向,也就是空指针 ...
- C语言学习笔记——字符串结束符\0
C语言中的字符串结束符\0标志着字符串的结束,由编译器自己加上的,ASCII值为0,表示NULL,ASCII中有很多不可见字符由转义字符\和可见字符来标识的,当然可见字符也能用转义字符表示.
- 学习笔记------关于字符串结束符'\0'、字符串定义方法
字符串定义方法 有2种方法: 1)字符数组 2)字符指针 初始化 1)字符数组方式初始化大致3种: (1) char str[10]="12345"或者char str[10] ...
- 关于字符串结束符'\0'、字符串定义方法
字符串定义方法 有2种方法: 1)字符数组 2)字符指针 初始化 1)字符数组方式初始化大致3种: (1) char str[10]="12345"或者char str[10] ...
- C语言中字符串结束符'\0'
本质 '\0'就是8位的00000000,因为字符类型中并没有对应的这个字符,所以这么写.'\0'就是 字符串结束标志. '\0'是转义字符,意思是告诉编译器,这不是字符0,而是空字符.空字符\0对应 ...
- C语言: 字符串结束符 ‘ \0 ’
1.本质 '\0'是字符串结束标志,不计入串长,但要占内存空间. '\0'是一个ASCII控制字符,是转义字符.意思是告诉编译器,这不是字符0,而是空字符.空字符\0对应的二进制为0000 0000, ...
- 关于字符串结束符'\0'
字符串结束符:'\0',其本质就是8位的 0000 0000,而字符类型中并没有这个字符(注意与ASCLL码区别,在ASCLL中000--代表NULL). 所以用0的转意来表示,其意义是字符串的结束 ...
- c/c++ 语言中的字符串结束符 '\0'
字符在内存中的存储是ASCII值存储, '\0' 是 c/c++ 语言中的字符串结束符,在ASCII字符集中对应空字符NULL,数值为0.其作用是识别字符串,简化字符串处理过程.在使用过程中要为其分配 ...
- C语言中的字符串结束符'\0'
字符串以'\0'结尾,作为对字符串长度识别的标志,'\0'在ASCLL码表中代表NUL,十进制为0. 我写了一个函数,大致功能是将字符串A复制到字符串B中(此时B中为空),返回复制后NUL在B中的地址 ...
最新文章
- GLPI生成中文PDF报表
- 使用CSS实现三栏自适应布局(两边宽度固定,中间自适应)
- python培训班一般多少钱-广州Python培训机构一般多少钱
- Java基础day23
- apache camel_Apache Camel简介
- 带权图的最短路径算法(Dijkstra)实现
- lua table insert_超详细的sysbench oltp-数据库性能测试中lua脚本解剖
- flash 围棋_17岁攻读剑桥计算机,围棋只有业余一段,研发阿尔法狗战胜柯洁
- VUE day_08(7.26)学子商城项目详细版
- linux安装ralink驱动程序,Linux 安装 FW150UM/RALINK 无线网卡
- 计算机大类专业分流问题,2019级计算机大类专业分流实施细则
- 目前最值得入手的蓝牙耳机有哪些?四款高性价比蓝牙耳机推荐
- 最美的十大经典爱情句子{转}
- 每日一练-10-求矩阵主对角线及副对角线元素的和
- Android获取定位经纬度
- android实现拍照、相册选图、裁剪功能,兼容7.0以及小米
- mysql 内部 临时表_MySQL内部临时表策略 - Mr.南柯 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
- 云服务器 文件管理,云服务器如何管理文件
- ubuntu 命令笔记
- 业财一体化升级设计说明