Ответ 1
std::string
может принимать char *
как параметр конструктор и через несколько операторов.
char * mystr = "asdf";
std::string mycppstr(mystr);
или для юристов языка
const char * mystr = "asdf";
std::string mycppstr(mystr);
Может ли кто-нибудь рассказать мне, как преобразовать строку стиля C (например, char *) в строку стиля С++ (т.е. std::string)) в программе на С++?
Большое спасибо.
std::string
может принимать char *
как параметр конструктор и через несколько операторов.
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` `
Вы можете использовать конструктор string
, который принимает аргумент char*
.
char *str = "some c style string";
string obj(str);
Другой способ сделать преобразование - вызвать функцию, которая принимает const std::string&
как параметр:
void foo(const std::string& str);
void bar()
{
char* str= ...
foo(str);
}
Я думаю, что его намного более аккуратный способ сделать преобразование на границе вызова функции.