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