Преобразование строки стиля c в строку стиля С++ Может ли кто-нибудь рассказать мне, как преобразовать строку стиля C (например, char *) в строку стиля С++ (т.е. std::string)) в программе на С++? Большое спасибо. Ответ 1 std::string может принимать char * как параметр конструктор и через несколько операторов. char * mystr = "asdf"; std::string mycppstr(mystr); или для юристов языка const char * mystr = "asdf"; std::string mycppstr(mystr); Ответ 2 char* cstr = //... some allocated C string std::string str(cstr); Содержимое cstr будет скопировано в str. Это также можно использовать в операциях: std::string concat = somestr + std::string(cstr); Где somestr уже ` std::string` ` Ответ 3 Вы можете использовать конструктор string , который принимает аргумент char*. char *str = "some c style string"; string obj(str); Ответ 4 Другой способ сделать преобразование - вызвать функцию, которая принимает const std::string& как параметр: void foo(const std::string& str); void bar() { char* str= ... foo(str); } Я думаю, что его намного более аккуратный способ сделать преобразование на границе вызова функции.
Ответ 1 std::string может принимать char * как параметр конструктор и через несколько операторов. char * mystr = "asdf"; std::string mycppstr(mystr); или для юристов языка const char * mystr = "asdf"; std::string mycppstr(mystr);
Ответ 2 char* cstr = //... some allocated C string std::string str(cstr); Содержимое cstr будет скопировано в str. Это также можно использовать в операциях: std::string concat = somestr + std::string(cstr); Где somestr уже ` std::string` `
Ответ 3 Вы можете использовать конструктор string , который принимает аргумент char*. char *str = "some c style string"; string obj(str);
Ответ 4 Другой способ сделать преобразование - вызвать функцию, которая принимает const std::string& как параметр: void foo(const std::string& str); void bar() { char* str= ... foo(str); } Я думаю, что его намного более аккуратный способ сделать преобразование на границе вызова функции.