CとC++文字列の変換、違い

スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 |
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般

C++文字列をC文字列に変換

c_str()メンバ関数を用いることで、C++スタイルの文字列をC形式の文字列に変換できます。

スポンサーリンク

char c_char[100];    // Cの文字列
std::string cpp_char("some");    // C++の文字列
// C++文字列→C文字列に変換
std::strcpy(c_char, cpp_char.c_str());

C文字列をC++文字列に変換

cpp_char = c_char;    // ただ代入しても自動的にC++に変換される
cpp_char = static_cast(c_style);    // キャスト(型変換演算子)。変換を明示する場合。

CとC++の文字列の違い

C++の文字列(std::string)のほうが、記憶域を自動的に管理する分、std::strcpy、std::strcatなどを使う場合に、文字列のサイズを気にする必要がありません。
Cの文字列の場合ですと、小さいサイズの変数に、長い文字列をコピーしてしまうと、メモリを破壊してしまう恐れがあります。

そう考えると、C++の文字列を使うほうが安心なのですが、Cの文字列ほど高速ではないというトレードオフがあります。
しかし、C++の文字列(std::stringクラス)を用いるほうが楽だし安全なので、C++形式の文字列(std::string)のほうが良いように思えます。(よほどの高速化が求められない場合)

スポンサーリンク
 
スポンサーリンク