谁能告诉我如何在 C++ 程序中将 C 风格的字符串(即 char* )转换为 C++ 风格的字符串(即 std::string)?
非常感谢。
std::string
可以将 achar *
作为构造函数参数,并通过多个运算符。
char * mystr = "asdf";
std::string mycppstr(mystr);
或语言律师
const char * mystr = "asdf";
std::string mycppstr(mystr);
char* cstr = //... some allocated C string
std::string str(cstr);
的内容cstr
将被复制到str
.
这也可以在操作中使用,例如:
std::string concat = somestr + std::string(cstr);
somestr
`std::string` 已经在哪里了
您可以使用以 a作为参数的string
类构造函数。char*
char *str = "some c style string";
string obj(str);
另一种进行转换的方法是调用一个以 aconst std::string&
作为参数的函数:
void foo(const std::string& str);
void bar()
{
char* str= ...
foo(str);
}
我认为在函数调用边界进行转换要整洁得多。