所以給出:輸出的char *到的std :: string C++
struct MemoryStruct {
char *memory;
size_t size;
};
char* memory
持有捲曲的回報,XML文檔。
我做:
if(chunk.memory) {
std::cout << "char size is " << sizeof(chunk.memory) << std::endl;
std::string s = "";
for (int c = 0; c<sizeof(chunk.memory); c++) {
s.push_back(chunk.memory[c]);
}
std::cout << "s: " << s.c_str() << std::endl;
}
我只取回<?xm
所以sizeof()
,我認爲是在炭返回的總字節數*
我如何得到什麼實際的價值是char*
。所以基本上整個捲曲都會返回。哪5行是XML?
'sizeof'在'字符*'將返回指針的大小,該字符串中的字符數量不限。使用'strlen(chunk.memory)'獲取字符串長度(假設它以null結尾)。並且不需要單獨push_back每個字符,'std :: string'有一個構造函數,它接受'char const *'到一個以空字符結尾的字符串。 'std :: string s(chunk.memory);'就足夠了。如果不是空終止,請使用's(chunk.memory,str_length);' – Praetorian 2013-03-04 18:18:14