Может любой говорить мне, как преобразовать строку стиля C (т.е. символ*) к строке стиля C++ (т.е. станд.:: строка) в программе C++?
Большое спасибо.
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);
}
Я думаю, что гораздо удобнее выполнять преобразование при вызове функции граница.