从char(unsigned char)数组拷贝至string的方法
本文最后更新于:2022年6月8日 晚上
标准
C++标准 https://en.cppreference.com/w/cpp/string/basic_string/basic_string 中第4条,构造时传入char *
指针和待传入的数据长度
basic_string( const CharT* s, size_type count, const Allocator& alloc = Allocator() );
示例
1 |
|
1 |
|
在c++11中,可以通过string的构造函数 basic_string( const CharT* s, size_type count, const Allocator& alloc = Allocator() );
完成char *
到string的转化,不用管char 数组中是否含有0,可通过 .size()
查看大小,或者直接 使用 gdb
查看内存中的数据;但需注意,直接使用std::cout
输出可能会丢失数据(遇\0
结束),建议使用迭代器对每个元素遍历。
如上图中终端输出的 使用x
命令访问 内存,格式如 x/<n/f/u> <addr>
,
n 正整数,表示需要显示的内存单元的个数,即从当前地址向后显示n个内存单元的内容
f 表示addr 指向内存内容的输出格式,s对应输出字符串,其它整形格式如下:
- x 按十六进制格式显示变量
- d 按十进制格式显示变量
- u 按十进制格式显示无符号整型
- o 按八进制格式显示变量
- t 按二进制格式显示变量
- a 按十六进制格式显示变量
- c 按字符格式显示变量
- f 按浮点数格式显示变量
u 指以多少个字节作为一个内存单元-unit,默认为4。u还可以用被一些字符表示:如b=1 byte, h=2 bytes,w=4 bytes,g=8 bytes.