有谁能告诉我如何在C ++程序中将C样式字符串(即char *)转换为c ++样式字符串(即std :: string)?
非常感谢。
答案 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);
}
我认为在函数调用边界进行转换更加整洁。