C++で文字列のメジャーな扱い方
こんにちは。みなみんです。
久しぶりの投稿です!
今回はC++での文字列のメジャーな扱い方を記事にしました.
コラム
このブログを書き始めてもう3ヶ月が経ちました.
(1,2ヶ月ぐらいは投稿してなかったが...)
授業や趣味とかの場面で,ある知識について,その知識を忘れたときには書いてきたブログを見て思い出すんですね.
その時,ブログを書いててよかった〜〜と思う事が何度かありました.
それで,これからも書き続けようと思い,現在に至っております..
目次
文字列型
文字列型はメジャーな型で2種類あります.
char型
「チャー型」,「カー」(海外のチュートリアルでは時々聞く),「キャラ型」等と呼ばれたりします.
このまま変数として扱う際には,一文字の「文字」として格納します.
また,その文字は文字コードも同時に格納されてあり,整数型としてキャストすると,その文字コードを得る事ができます.
string型
どの言語でもお馴染みの「ストリング型」.
char型変数の使用
宣言
変数の宣言のみ.
char c;
初期値を代入するにはシングルクォーテーション「' '」で囲みます.
char c = 'A';
また,文字以外にも文字コードでの代入も可能です.
char c = 65; //A
代入
文字の代入.
c = 'B';
または,文字コードでの代入
c = 66 //B
もちろん,同型の変数同士による代入も可能.
char cc = 'C';
c = cc;
string型変数の使用
宣言
初期値なしの宣言のみ.
string str;
初期値あるの宣言.
string str = "Hello World!";
代入
文字列を代入する際には,ダブルクォーテーション「" "」で囲みます.
str = "World!";
当然の事ながら,同型の変数同士による代入も可能.
string str2 = "World!";
str = str2;
両者の違い
char型
- string型と違って,一文字しか格納できない.
- 文字コードが付加されている.
- 「' '」(シングルクォーテーション)による代入.
- ヌル文字
string型
- 複数の文字を格納する事ができる.
- 文字列の長さを取得できる.
- 「" "」(ダブルクォーテーション)による代入.
char型で「文字列」を格納する
このままでは,char型の利点は少なすぎて使い物になりませんよね.
筆者自身もその利点というのはまだ,はっきりとはしていません.
そこで,もっとchar型を便利に使う方法を紹介します.
上記で記した通り,char型は一文字の「文字」しか格納する事が出来ませんでした.
複数の文字からなる「文字列」を格納するには,char型の「配列」を使います.
cha型配列はそのまま,コンソール出力のcoutを行う事ができます.
これなら,string型のように扱う事ができます.
また,代入の方法で以下のように代入する事もできます.
ヌル文字
上記のコードで何か気づく事はありませんか?
そう,要素数の変化に気づきませんか??
「{'A','B','C'}」の三文字で要素数は3にも関わらず,「"ABC"」は要素数が4です.
(自分で,試してみると分かります.)
のように,string型かのように文字列を代入すると,配列の終端に「ヌル文字」が入ります.
説明のために,変数wordsを配列的に表すと,
のように表せます.「'\0'」がヌル文字です。これは,プログラム的に終端を表すための一つの「文字」です.
なので,要素数が文字数より一つ増えているんですね.
この記事に誤りがあるかもしれません。その辺はご了承ください。
本記事で紹介されている方法・手法はあくまでも個人的なものです。