ast*_*ffe 0 c++ string null char
我正在开发一个我必须传输序列化数据的项目.使用boost框架序列化数据,然后将其存储到字符串流中,最后存储到std :: string.为了传输数据,存储数据(存储为char*,给定!)和字符串的长度,并且可以在目的地提取数据.但是,在尝试提取数据时,我只获得空字符串.到目前为止我尝试过的方法是:
C[i]=*new std::string(content, getDataChunk(), content.getDataLength());
Run Code Online (Sandbox Code Playgroud)
要么
C[i].append(content.getDataChunk(), content.getDataLength());
Run Code Online (Sandbox Code Playgroud)
而std :: string*C = new std :: string [K],i <K.
char* p = content.getDataChunk();
int l = content.getDataLength();
for (int j = 0; j < l; j++) {
C[i].insert(j, p[j], 1);
}
Run Code Online (Sandbox Code Playgroud)
(这在一开始就引发了异常 - 我猜是因为NULL值!)
显然,strcpy()将不起作用,因为它使用char*作为目标,再次以NULL结尾...
你们有没有人知道如何解决这个问题?我希望我不是每天都会问一些问题,但是在答案的数量上很难消除这个机会;)
您的任何提示都非常感谢 - TIA!
欢呼,亚历克斯
为什么不这样做呢
C[i] = std::string(content.getDataChunk(), content.getDataLength());
Run Code Online (Sandbox Code Playgroud)
它会做正确的事情,复制完整的字符串,即使它中嵌入了'\0'字符.