17

谁能告诉我如何在 C++ 程序中将 C 风格的字符串(即 char* )转换为 C++ 风格的字符串(即 std::string)?

非常感谢。

4

4 回答 4

26

std::string可以将 achar *作为构造函数参数,并通过多个运算符。

char * mystr = "asdf";
std::string mycppstr(mystr);

或语言律师

const char * mystr = "asdf";
std::string mycppstr(mystr);
于 2010-02-11T06:52:28.677 回答
10
char* cstr = //... some allocated C string

std::string str(cstr);

的内容cstr将被复制到str.

这也可以在操作中使用,例如:

std::string concat = somestr + std::string(cstr);

somestr`std::string` 已经在哪里了

于 2010-02-11T06:52:43.053 回答
3

您可以使用以 a作为参数的string 类构造函数。char*

char *str = "some c style string";
string obj(str);
于 2010-02-11T06:53:09.113 回答
0

另一种进行转换的方法是调用一个以 aconst std::string&作为参数的函数:

void foo(const std::string& str);

void bar()
{
    char* str= ...

    foo(str);
}

我认为在函数调用边界进行转换要整洁得多。

于 2010-02-11T10:44:04.490 回答