将c样式字符串转换为c ++样式字符串

时间:2010-02-11 06:51:08

标签: c++ c-strings

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

非常感谢。

4 个答案:

答案 0 :(得分:24)

std::string可以将char *作为constructor参数,并通过多个运算符。

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

或语言律师

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

答案 1 :(得分:9)

char* cstr = //... some allocated C string

std::string str(cstr);

cstr的内容将被复制到str

这可以在操作中使用:

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

somestr已经是`std :: string``

答案 2 :(得分:3)

您可以使用以string为参数的char* class constructor

char *str = "some c style string";
string obj(str);

答案 3 :(得分:0)

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

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

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

    foo(str);
}

我认为在函数调用边界进行转换更加整洁。