最近在做网络通信,看到很多人使用vector<char>来存储二进制网络数据,而我有时需要用char*数据,所以记录下二者的相互转换方法,代码如下:

#include <cstring>
#include <vector>
using namespace std;
int main(int argc, char *argv[])
    vector<char>vecData_;
    char *strCharA_ = "1234";
    //char*-->vector<char>转换
    vecData_.insert(vecData_.end(), strCharA_, strCharA_ + strlen(strCharA_));
    //vector<char>-->char*转换
    char *strCharB_ = &vecData_[0];
    return 0;
                    最近在做网络通信,看到很多人使用vector&lt;char&gt;来存储二进制网络数据,而我有时需要用char*数据,所以记录下二者的相互转换方法,代码如下:#include &lt;cstring&gt;#include &lt;vector&gt;using namespace std;int main(int argc, char *argv[]){    vector...
				
通常使用vector<char>来存储二进制数据(比如网络数据包).因此它会与char* 进行相互转换,具体方法如下例所示: #include <iostream> #include <vector> #include <iterator> #include <algorithm> #include <cstring> us...
在以前老一辈技术人员都喜欢使用new char[]来进行动态分配字符串数组,这种情况很容易忘记使用delete进行配对导致内存泄漏。为解决此问题,我们可以使用std::vector&lt;char&gt;容器(内存连续)来代替动态分配数组的功能,以下代码展示了vector的使用: template&lt;typename _Tp,_Tp value&gt; _Tp to_value(_Tp c)...
一.string类和vector<char>的区别 string类是一个保存字符的动态数组,由于其中有一个接口c_str,转化成c语言的字符串,要以\0结尾,所以string类最后会有一个\0. vector<T>是一个保存T类型的动态数组,vector<char>也是保存字符的动态数组,但是,不会以\0结尾,不保存\0. 二.vector和list比较
1.String16转const char* String16 name16 = String16("Hello World"); String8 name8 = String8(name16); const char *buffer = name8.string(); printf("buffer = %s\n",buffer); String16.string()其实是c...
C++程序时经常会遇到string、vector<char>和(const)char *之间的转换,本文介绍了其间的转换方法和注意事项。 1. string转vector<char> string所存储字符串不包含'\0',所以转为vector后,通过vector.data()直接输出会有问题,会往后找直到'\0',会出现乱码。所以应该在vector后手动再加上'\0',这样在vector.data()输出字符串就没问题了。但此时vector.size()会比string.le
float arrHeight[] = { 1.68,1.72,1.83,2.05,2.35,1.78,2.1,1.96 }; vector&lt;float&gt; vecHeight(arrHeight, arrHeight+sizeof(arrHeight)/sizeof(float)); 2、vector转数组 由于vector内部的数据是存放在连续的...
因为数组是事先开辟好的,pushback进去的是数组的地址,所以无论你怎么改输入的内容,都是把一个相同的东西存进去。 解决方法 重新定义一个char *temp_buf = new char[10] 然后strcpy,再push_back进去。 C++代码: #define _CRT_SECURE_NO_WARNINGS // vector&lt;char&gt;, string转换 // vector&lt;char&gt;与string本质上都是STL内部的程序,是可以用insert来转换的 #include &lt;bits/stdc++.h&gt; // c++标准库 using namespace std ; int m...