- # C言語/C++入門 > 配列・文字列・数値と型
Cの文字列とC++の文字列コピー
スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
Cの文字列
スポンサーリンク
C++でも、Cプログラムが動くようにと、C++ではCの文字列の記述の仕方が、有効となっています。
Cの文字列は、文字の配列となっており、以下のように記述します。
#include <iostream> char name[4]; int main() { name[0] = 'T'; name[1] = 'o'; name[2] = 'm'; name[3] = '\0'; std::cout << name[0] << name[1] << name[2] << name[3] << "\n"; std::cout << name << "\n"; return(0); }
「\0」(NUL)は、文字列の終端を表す特別な文字です。
実行結果。
Tom Tom
C++での文字列の変数へのコピー
C++では、配列どうしの代入は許可されず、「name = “Tom”」のような書き方はできません。
標準ライブラリ関数、std::strcpyを用いると、文字列を変数にコピーできます。
#include <iostream> #include <cstring> char name[50]; int main() { std::strcpy(name, "Tom"); std::cout << name << "\n"; return(0); }
実行結果。
Tom
このコードでは、char name[50];と文字列(文字の配列)の長さを50文字としています。
C++では、可変長の文字列を使用でき、この場合最大50文字を保持できることになります。
実際には、文字列の最後は、\0(NUL)にする必要がありますので、49文字は自由に文字を格納できるということになります。
文字列関数
std::strcpy(文字列1, 文字列2)
文字列2を文字列1にコピーする
std::strncpy(文字列1, 文字列2, 長さ)
文字列2を、指定された長さの範囲内で、文字列1にコピー
std::strcat(文字列1, 文字列2)
文字列2を文字列1の最後に連結する
std::strncat(文字列1, 文字列2, 長さ)
文字列2を、指定された長さの分、文字列1に連結する
std::strlen(文字列)
文字列の長さを取得する
std::strcmp(文字列1, 文字列2)
文字列を比較する。
文字列1と文字列2が等しいときは0を返す。
文字列1が文字列2よりも大きい場合は正数を返し、逆の場合は負数を返す。
スポンサーリンク
>> 次の記事 : 文字列関数/文字列のコピー・連結
<< 前の記事 : assert文で配列要素の範囲外エラーを防ぐ
- - 関連記事 -
- 2進数・8進数・16進数・10進数と変換方法
- 修飾子
- 定数と参照型の宣言・&
- 整数型・int
- CとC++文字列の変換、違い
- 文字列関数/文字列のコピー・連結
- assert文で配列要素の範囲外エラーを防ぐ
- 変数の初期化
- 文字列の入力・std::cin
- データ出力と入力/std::coutとstd::cin
- 文字列の宣言(std::string)と操作
- 配列の宣言
スポンサーリンク