ホームページ >バックエンド開発 >C++ >C で std::string を char* または char[] に変換する方法

C で std::string を char* または char[] に変換する方法

Susan Sarandon
Susan Sarandonオリジナル
2024-12-01 07:46:12830ブラウズ

How to Convert a std::string to a char* or char[] in C  ?

std::string を char* または char[] に変換します

std::string を char* または char[] に変換しますデータ型の変換は C では一般的なタスクですが、自動変換はサポートされていないことに注意してください。これを実現するには、c_str() メソッドを使用して、std::string の C スタイルの文字列表現を取得できます。

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

c_str() メソッドは const char ポインタを返すため、非 const ポインタが必要な場合は、代わりに data() メソッドを使用できます:

char *cstr = str.data();

代替オプション:

c_str() と data() の使用に加えて、std::string を char* に変換する他の方法もあります:

  • ベクターへの文字のコピー:

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

    このバージョンには注意してください終端の null 文字 (' ') をコピーします。

  • 手動メモリ管理 (注意して使用してください):

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

以上がC で std::string を char* または char[] に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。