ホームページ > バックエンド開発 > C++ > C で `std::string` を `char*` または `char[]` に変換するにはどうすればよいですか?

C で `std::string` を `char*` または `char[]` に変換するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-30 15:39:09
オリジナル
130 人が閲覧しました

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

std::string を char* または char[]

C では、 std:: を変換する必要がある場合があります。一連の文字を保持する文字列を、char* または char[] で表される NULL で終わる文字配列に変換します。ただし、代入演算子を使用した直接変換ではエラーが発生します。

この変換を実現するには、いくつかの方法が使用できます。

1. c_str() メソッド:

std::string の c_str() メソッドは、基になる NULL で終わる C スタイルの文字列へのポインターを返します。このポインタは、char* 変数に直接割り当てることができます。

std::string str = "string";
const char *cstr = str.c_str();
ログイン後にコピー

2. data() メソッド:

std::string の data() メソッドも、基になる C スタイルの文字列へのポインターを返しますが、これは非 const です。このポインタは、const 修飾子なしで char* 変数に割り当てることができます。

std::string str = "string";
char *cstr = str.data();
ログイン後にコピー

その他のオプション:

  • std へのコピー: :vector:

は作成できます文字の std::vector を取得し、 std::string からそれに文字をコピーします。次に、ベクターの data() メソッドを使用して char* ポインターを取得できます。

  • 手動メモリ割り当て:

手動で行うことができます。 new 演算子を使用して文字の配列を割り当て、std::string から配列に文字をコピーし、その配列を char* ポインターとして使用します。手動によるメモリ管理の問題があるため、このアプローチは慎重に使用する必要があります。

要約すると、std::string の c_str() メソッドと data() メソッドは、std::string を char* に変換する便利な方法を提供します。または char[] データ型。 std::vector へのコピーや手動メモリ割り当てなどの他のオプションは、特定の状況で使用できます。

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

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