web-dev-qa-db-ja.com

cスタイルの文字列をc ++スタイルの文字列に変換する

C++プログラムでCスタイルの文字列(つまりchar *)をc ++スタイルの文字列(つまりstd :: string)に変換する方法を教えてもらえますか?

どうもありがとう。

17
assassin

std::stringは、char *コンストラクター パラメーターとして、いくつかの演算子を介して受け取ることができます。

char * mystr = "asdf";
std::string mycppstr(mystr);

または言語弁護士のために

const char * mystr = "asdf";
std::string mycppstr(mystr);
26
John Weldon
char* cstr = //... some allocated C string

std::string str(cstr);

cstrの内容はstrにコピーされます。

これは、次のような操作でも使用できます。

std::string concat = somestr + std::string(cstr);

somestrはすでに `std :: string``です。

9
zaharpopov

stringクラスコンストラクター を利用できます。これはchar*引数として。

char *str = "some c style string";
string obj(str);
3
codaddict

変換を行う別の方法は、const std::string&をパラメーターとして受け取る関数を呼び出すことです。

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

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

    foo(str);
}

関数呼び出しの境界で変換を行う方がはるかに整頓されていると思います。

0
quamrana