c++ - 将 char* 转换为字符串 C++

标签 c++ string char

我知道字符串的起始地址(例如,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/

相关文章:

c++ - cv::Mat::clone() 是否比分配由 cv::Mat::zeros() 创建的矩阵更有效?

c++ - 带有 open_MP 的静态变量 thread_local

c++ - 如何使用 C++ win32 API 连接消息框文本中的值?

C fread char 代码块

c - 如何计算C中文本文件中的单词数

c - fprintf 中的字符串是错误的数据类型(%s)

c++ - 使用模板时出现奇怪的 "invalid initialization of non-const reference"

java - String.replaceFirst 错误? java

c++ - 字符串问题

bash - 在 bash 中,如何计算变量中的行数?