std :: vector <char>到std :: string </char>

时间:2013-11-05 23:02:50

标签: c++ vector

我正在尝试使用以下内容将std::vector<char>转换为字符串:

//  Data has been received, update the buffer...
buffer = readBuffer.data();
buffer[bytesRead-1] = '\0';

我遇到的问题是,当我调试readBuffer时,我得到"<A HREF="https://www.google.com/">here</A>."

但在审核缓冲区时,我得到'<A HREF="https://ww ²²²²▌▌╫$Ö►¬∟☺.google.com/">here</A>.'

我遗失了一些非常明显的东西吗?

2 个答案:

答案 0 :(得分:15)

在字符向量的末尾写一个空字符不会神奇地创建std::string。要创建实际的std::string,请使用以下内容:

std::string s = std::string(readBuffer.begin(), readBuffer.end());

您不需要将明确的空字符附加到字符串中,std::string构造函数会为您执行此操作。

答案 1 :(得分:0)

你可以像这样从矢量构造一个字符串:

std::string str(readBuffer.begin(), readBuffer.end());