17

C++プログラムでCスタイルの文字列(つまり char* )をC++スタイルの文字列(つまり std::string )に変換する方法を教えてください。

どうもありがとう。

4

4 に答える 4

26

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

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

または言語弁護士の場合

const char * mystr = "asdf";
std::string mycppstr(mystr);
于 2010-02-11T06:52:28.677 に答える
10
char* cstr = //... some allocated C string

std::string str(cstr);

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

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

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

somestr既に `std::string` がある場所

于 2010-02-11T06:52:43.053 に答える
3

を引数として取るstring クラス コンストラクターを使用できます。char*

char *str = "some c style string";
string obj(str);
于 2010-02-11T06:53:09.113 に答える
0

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

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

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

    foo(str);
}

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

于 2010-02-11T10:44:04.490 に答える