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

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

Susan Sarandon
リリース: 2024-12-01 07:46:12
オリジナル
833 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート