如何将vector转换为const char *?还要串? 这甚至合法吗?
void Printer::Wrap(const CharVector& text, RangeVector& result) const
//if (TestLineWidth(text.begin(), text.end()))
int c = 0;
for (CharVector::const_iterator it = text.begin(); it != text.end(); ++it)
c++;
if (TestLineWidth(&text[0], &text[c]))
以下是CharVector和TestLineWidth的声明:
typedef std::vector<char> CharVector;
bool TestLineWidth(const char* from, const char* to) const;
答案 0 :(得分:2)
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main() {
vector<char> data = {'h', 'e', 'l', 'l', 'o', '!'};
cout << string(begin(data), end(data)) << endl;
return 0;
}
对于const char *,你不能只调用data.data(),因为C-string是空终止的,所以你必须在末尾附加'\ 0'
答案 1 :(得分:-1)
如果你想将字符串转换为char *,你可以使用yourString.c_str() cf C ++文档:http://www.cplusplus.com/reference/string/string/c_str/