相关文章推荐
八块腹肌的黄瓜  ·  基于Python的 ...·  3 月前    · 
喝醉的草稿纸  ·  对 WCF 或WCF Data ...·  11 月前    · 

如果最终我们拿到了字符向量数组,那么我们可以使用string一个比较少用的构造函数来完成这个转换工作,具体看代码:

std::vector<char> vec;
std::string str(vec.begin(), vec.end());

这样str就是转换后得到的字符串。

方法二、偷梁换柱法

既然我们最终想要的是string字符串,那么我们最开始的时候是不是可以不使用字符向量数组vectror<char>,而直接使用字符串string呢?当然可以,我们可以利用另一个string的构造函数,具体看代码:

// 如果我们打算使用vec
std::vector<char> vec;
// 可以尝试使用str,size是最终字符串长度,初始化化str,每一位都是字符a
std::string str(size, 'a'); 

这样初始化后,操作str和vec是差不多的,但是最终的结果就不需要再进行转化了。

上述两种方法其实都是合理利用了string的构造函数,在实际使用过程中,如果能够灵活运行它们会收到事半功倍的效果,自己深有体会。接下来看看string都有那些常见的构造函数方法:

string strs;                              //构造一个空的字符串
string s(str);                            //构造一个字符串str的复制品
string s(str, strIndex);             //将字符串str中始于stridx的部分作为构造函数的初值
string s(str, strbegin, strlen);  //将字符串str中始于strbegin、长度为strlen的部分作为字符串初值
string s(cstr);                          //以C_string类型cstr作为字符串s的初值
string s(cstr,char_len);           //以C_string类型cstr的前char_len个字符串作为字符串s的初值
string s(num, c);                      //生成一个字符串,包含num个c字符
string s(strs, beg, end);           //以区间[beg, end]内的字符作为字符串s的初值

目录问题解决总结问题今天遇到一个问题,问题是如何将vectror&lt;char&gt;转换成string,编程语言是C++。后来总结发现有两种方法,接下来结合代码看看二者的优劣。解决方法一、直接法如果最终我们拿到了字符向量数组,那么我们可以使用string一个比较少用的构造函数来完成这个转换工作,具体看代码:std::vector&lt;char&gt; vec;std::string str(vec.begin(), vec.end());这样str. string (const string &amp; str); string (const string &amp; str, size_t pos, size_t len = npos);
C++ 程序时经常会遇到 string vector < char >和(const) char *之间的 换,本文介绍了其间的 换方法和注意事项。 1. string vector < char > string 所存储 字符串 不包含'\0',所以 vector 后,通过 vector .data()直接输出会有问题,会往后找直到'\0',会出现乱码。所以应该在 vector 后手动再加上'\0',这样在 vector .data()输出 字符串 就没问题了。但此时 vector .size()会比 string .le
有时候也会遇到std: vector std: string 相互 换的情况。首先看一下 vector < char >如何 string :std:: vector < char > *data = response->getResponseData(); std:: string res; //方法一 for (int i = 0;i<data->size();++i) { res+=(*data)[i];
可以使用 String 类的 构造函数 将List< char > 换为 String ,例如: List< char > char List = new List< char >{'H', 'e', 'l', 'l', 'o'}; String str = new String ( char List.ToArray()); Console.WriteLine(str); // 输出 "Hello"