【发布时间】:2011-03-07 17:37:00
【问题描述】:
我有一个字符串定义为std::string header = "00110033";
现在我需要字符串来保存数字的字节值,就好像它是这样构造的
char data_bytes[] = { 0, 0, 1, 1, 0, 0, 3, 3};
std::string header = new std::string(data_bytes, 8).c_str());
我使用atoi 将初始字符串转换为int 数组。现在我不确定如何用它制作字符串。让我知道是否有更好的方法。
【问题讨论】:
-
我无法理解你的问题。
-
第二行的语法不正确。还有,这里
new的用意是什么? -
为什么需要这样做?如果数组包含的值不在 0 到 9 之间,你会怎么做?
-
效率低下(由于复制)和内存泄漏(由于
new没有存储相应delete的指针)说std::string header = (new std::string(data_bytes, 8))->c_str();(或任何你的意思)。你可以直接说std::string header(data_bytes, 8);。