Cの文字列とC++の文字列コピー

はてなブックマークに追加はてなブックマーク Yahoo!ブックマークに登録 ニフティクリップに追加 Livedoor クリップに追加 BuzzurlにブックマークBuzzurlにブックマーク Twitterに投稿  

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よりも大きい場合は正数を返し、逆の場合は負数を返す。


日時: 2008年06月02日 21:54
コメントを投稿






トラックバック

■この記事のトラックバックURL:
http://www.mapee.jp/mpe334/mt-tb.cgi/186

この記事にトラックバックされる方は、参照先が分かるようにするために、「Cの文字列とC++の文字列コピー」へのリンクをお願いいたします。
以下のHTMLタグをトラックバック送信元ページ内に挿入して下さい。



※この記事へのリンクがない、また関連のないページからのトラックバックは反映されませんので、ご了承下さい。






あわせて読みたいブログパーツ
フィードメーター - C言語とC++勉強ルーム