1. ホーム
  2. c++

[解決済み】std::stringからchar*への変換

2022-03-24 18:27:16

質問

を変換したい。 std::string char* または char[] のデータ型になります。

std::string str = "string";
char* chr = str;

結果が出る。 "error: cannot convert 'std::string' to 'char' ..." .

このような場合、どのような方法があるのでしょうか?

どのように解決するのですか?

自動変換はされません(よかった)。その場合は c_str() で、C言語文字列版を取得します。

std::string str = "string";
const char *cstr = str.c_str();

を返すことに注意してください。 const char * で返されるC言語の文字列を変更することは許されません。 c_str() . 加工したい場合は、まずそれをコピーする必要があります。

std::string str = "string";
char *cstr = new char[str.length() + 1];
strcpy(cstr, str.c_str());
// do stuff
delete [] cstr;

あるいはモダンC++で。

std::vector<char> cstr(str.c_str(), str.c_str() + str.size() + 1);