C++之string的底层真的是用char数组来实现的么?
2015-03-16 18:37
323 查看
一、引言
遇到一个问题:使用加密库对数据进行加密,得到密文,使用string进行保存并传输,然后可以正确解密出来,但是使用string.c_str()进行参数传递则无法正确解密出明文。
原因是:密文中有个字节是0,导致传参数时char数组被截断,但是使用string为什么不会截断呢,string类的实现到底是不是使用char数组呢?
二、步骤
首先就想到去看源码,侯捷先生说过:源码之前,了无秘密。
好吧,看了源码,但是没看懂,功力不够啊,还需要继续修炼
遇到一个问题:使用加密库对数据进行加密,得到密文,使用string进行保存并传输,然后可以正确解密出来,但是使用string.c_str()进行参数传递则无法正确解密出明文。
原因是:密文中有个字节是0,导致传参数时char数组被截断,但是使用string为什么不会截断呢,string类的实现到底是不是使用char数组呢?
二、步骤
首先就想到去看源码,侯捷先生说过:源码之前,了无秘密。
好吧,看了源码,但是没看懂,功力不够啊,还需要继续修炼
相关文章推荐
- C++ CHAR数组转化为STRING
- C++ 字符串string与字符数组char[ ]的异同
- C++中将char数组转换为string
- [C++]char转换为string ,固定长度的char数组转换为string
- 【语言基础】c++ 基本数据类型与字节数组(string,char [] )之间的转化方法
- 将C++的std::string类型变量赋值给char类型数组
- char*数组(c类型字符串)和c++中的string的转换、字符串比较、char*数组等问题
- C++ CHAR数组转化为STRING
- c++ char数组转化为string
- string对象代替char数组实现字符串的组合存储并显示
- 【C++学习笔记】宽字符(LPCWTR/wstring)和(char*/string)的转换实现
- golang基础-数组、切片创建_内存_底层实现_修改值_拷贝_循环、string与切片
- C/C++关于字符串string、char*字符串数组与其他类型转换
- C++的string与char 数组的区别
- 【转】C++ char数组转化为string
- 【C++ / Java】char数组和string的相互转换及自动转换
- char*数组(c类型字符串)和c++中的string的转换、字符串比较、char*数组等问题
- C++中string和char数组之间的转换---补充(16)《Effective C++》
- C++ int,char,string,CString类型转换(整理总结)
- [C++]vector嵌套实现2D数组