码迷,mamicode.com
首页 > 其他好文 > 详细

关于字符编码问题

时间:2014-09-04 20:51:00      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:ar   数据   问题   c   har   as   r   string   结构   

主要注意的一个问题是: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的
s.assign(c,5); //这个不包括结尾 0 , 比如protobuf 序列化出来的串,不用多加一个0。

关于字符编码问题

标签:ar   数据   问题   c   har   as   r   string   结构   

原文地址:http://www.cnblogs.com/chris-cp/p/3956821.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!