博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于std::string
阅读量:5840 次
发布时间:2019-06-18

本文共 437 字,大约阅读时间需要 1 分钟。

主要注意的一个问题是:std::string 实际是类似一个 vector<char>的结构。 它里面是可以存放 ascii为0 的字符

不算结尾 (否则 unicode方式的编码存放就有问题) 实际长度 用 length()获取

至于string赋值和构造有好几种方式,可以看文档。

举例说明:
char c[10]="wer|\t";
c[4] = 0;
std::string s =c;
由于c是char* 长度只能用strlen获取, strlen遇到0 就结束了,所以就丢失数据了。

构造和赋值,要把长度传进去:

std::string s(c,6); //构造
s.assign(c,6); //赋值, 这个是包括结尾符0的;;;不足就补0;
s.assign(c,5); //这个不包括结尾 0 , 比如protobuf 序列化出来的串,不用多加一个0。

转载于:https://www.cnblogs.com/chris-cp/p/3956821.html

你可能感兴趣的文章
假期为是否辞职做好数据参考
查看>>
启用ESXi的SSH服务
查看>>
总是弹出visual studio 实时调试器 三种解决办法
查看>>
微软MCITP系列课程(一)第一讲:部署虚拟机
查看>>
安装缓存集群代理服务
查看>>
完整配置CentOS6安装LAMP(Apache/MySQL/PHP)环境搭建教程
查看>>
配置Samba服务
查看>>
cmd中java的编译命令——java和javac、javap
查看>>
Test
查看>>
appium for windows 环境搭建
查看>>
BIG DATA 大数据时代来临
查看>>
vCloud Automation Center (vCAC) 6.0 (三)
查看>>
确保移动设备文件共享安全性的七大要素
查看>>
hibernate-jpa复杂查询,in
查看>>
读<王垠:一种新的操作系统设计>
查看>>
php多文件上传-简单示例,适合初学参考。
查看>>
android性能优化
查看>>
【转】Ajax响应中文乱码 [SpringMVC使用@ResponseBody处理Ajax请求]
查看>>
Linux硬链接、软链接的创建及两者的区别
查看>>
apache httpd mpm配置
查看>>