char*到std :: string

J S*_*han 2 c++

我在C++中有一个字符数组(char*pData),我想要做的是在std :: string中复制一些数据(来自pData).代码如下所示:

std::string sSomeData(pData+8);//I want to copy all data starting from index 8 till end
Run Code Online (Sandbox Code Playgroud)

问题是当上面的语句执行时,字符串中不包含任何内容.我猜我的pData没有以'\ 0'结尾,这就是为什么它不起作用.

问候,詹姆斯.

Vic*_*let 6

如果你知道它的大小pData,你可以使用construct-from-iterators构造函数:

std::string sSomeData(pData + 8, pData + size_of_pData);
Run Code Online (Sandbox Code Playgroud)

  • @YeenFei:在`的std :: string(迭代器开始,迭代结束)`构造份*不包括*由"端"的迭代器所引用的字符的字符.在这里传递一个1-last-the-last-character指针是正确的. (4认同)