処理関数からconst char *
が返されました。これをstd::string
のインスタンスに変換/割り当てて、さらに操作したいと思います。これは簡単なはずですが、どうすればよいかを示すドキュメントを見つけることができませんでした。明らかに、私は何かが欠けています。洞察は感謝します。
std::string
にはコンストラクタfromconst char *
があります。つまり、次のように記述しても問題ありません。
const char* str="hello";
std::string s = str;
試す
const char * s = "hello";
std::string str(s);
トリックを行います。
std::string
には、const char*
を暗黙的に変換するコンストラクターがあります。ほとんどの場合、何もする必要はありません。 const char*
を渡すだけで、std::string
が受け入れられ、機能します。
3つの可能性があります。コンストラクター、代入演算子、またはメンバー関数assign
を使用できます(メンバー関数insert
も考慮されない場合は、使用することもできます:)) `
例えば
#include <iostream>
#include <string>
const char * f() { return "Hello Fletch"; }
int main()
{
std::string s1 = f();
std::string s2;
s2 = f();
std::string s3;
s3.assign( f() );
std::cout << s1 << std::endl;
std::cout << s2 << std::endl;
std::cout << s3 << std::endl;
}