C++プログラムでCスタイルの文字列(つまりchar *)をc ++スタイルの文字列(つまりstd :: string)に変換する方法を教えてもらえますか?
どうもありがとう。
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);
}
関数呼び出しの境界で変換を行う方がはるかに整頓されていると思います。