Преобразование строки стиля 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` `

Ответ 4

Другой способ сделать преобразование - вызвать функцию, которая принимает const std::string& как параметр:

void foo(const std::string& str);

void bar()
{
    char* str= ...

    foo(str);
}

Я думаю, что его намного более аккуратный способ сделать преобразование на границе вызова функции.