将const char*转换为std :: string

Jus*_*her 7 c++ string char

我const char *从处理函数返回,我想将其转换/分配给std::string进一步操作的实例.这似乎应该是直截了当的,但我找不到任何文档说明应该如何完成.显然,我错过了一些东西.见解表示赞赏.

izo*_*ica 30

std::string有一个构造函数const char *.这意味着写入是合法的:

const char* str="hello";
std::string s = str;
Run Code Online (Sandbox Code Playgroud)

  • 只需确保您的 char * 不为 NULL,否则行为未定义。 (4认同)

Ed *_*eal 10

尝试

 const char * s = "hello";
 std::string str(s);
Run Code Online (Sandbox Code Playgroud)

会做的.

  • @EdHeal 这不在你的例子中,但一般来说 char* 可能是。我要为其他人留下免责声明。例如,我正在使用 getenv() 函数。如果环境变量不存在,它将返回一个空值。在构造该函数返回值的字符串之前需要进行检查。这是相关的,因为 OP 说他们“从处理函数中得到了一个 const char *”。 (2认同)