我知道字符串的起始地址(例如,char* buf
)和字符串的最大长度int l;
(即总字符数是小于或等于 l
)。
从指定的内存段获取string
的值最简单的方法是什么?也就是说,如何实现string retrieveString(char* buf, int l);
.
EDIT:内存是为写入和读取可变长度字符串而保留的。也就是说,int l;
表示的是内存的大小,而不是字符串的长度。
最佳答案
std::string str(buffer, buffer + length);
或者,如果字符串已经存在:
str.assign(buffer, buffer + length);
编辑:我仍然不能完全确定我理解了这个问题。但是,如果它像 JoshG 所建议的那样,你想要最多 length
个字符,或者直到一个空终止符,以先到者为准,那么你可以使用这个:
std::string str(buffer, std::find(buffer, buffer + length, '\0'));
关于c++ - 将 char* 转换为字符串 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8438686/