char型の配列宣言を行い文字データ 'a','b','c'など を配列に格納してみます 簡単な初期化方法もつかってみます

solarplexuss 「ふふふ 今日は こっそり


'文字'を配列に格納しちゃえ


文字データていうのは'シングルクオーテーションで


半角英数字1文字を囲ったものだったよね。


'a'

's'

'1'👈1をシングルクォーテーションで囲っています 文字データを表しています


のようにね(^_-)-☆



今度は 数値データでなく文字データを配列にとりこんでみましょう。


その場合は


整数値データを格納するint型の配列でなく


文字データを格納するchar型の配列をもちいます。


そのためにint型でなくchar型の配列宣言を実行することになります


#include <iostream>


using namespace std;


int main() {


char hairetu[4];//ここでchar型の配列宣言をおこなっています


hairetu[0]='n';

hairetu[1]='e';

hairetu[2]='k';

hairetu[3]='o';


cout<<hairetu[0]<<"\n";

cout<<hairetu[1]<<"\n";

cout<<hairetu[2]<<"\n";

cout<<hairetu[3]<<"\n";


return 0;


}


ビルド実行結果


n

e

k

o


solarplexuss


「整数値データを格納するint型でなく


文字データを格納するchar型の配列宣言を行わなければ


配列変数


hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]


は文字データを格納できるようにならないわけです。


変数宣言


int a;


により作製された変数aは


'1'

'n'


などの文字データを格納することができませんでしたが


変数宣言


char a;


により作製された変数aは


'1'

'n'


などの文字データを格納することができましたね。


それと同じことですね。



配列宣言


char hairetu[4];


を観察すると


生成される配列変数の数(要素数)は4となっていますね。


このとき


int hairetu[4];


を行って


配列変数を生成したときと同様に


見た目は全く同じ


配列変数


hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]


が生成されます


int a;


により作製された変数aも


char a;


により作製された変数aも


同じ変数名aとなるのと一緒です。


そして


char型の配列宣言により作製された


このときの


配列変数


hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]


はchar型の配列変数となっており


int型の配列変数が


-2147483648から214783647の整数値データを


格納できるのと違い


-128から127までの数値データや半角英数字1文字分の文字データを


格納することができます



今まで 例えば


文字データbを変数aに格納するには


変数宣言char a; のあと 文字bをシングルクォーテーション' 'で


囲って


char a='b';


と初期化していました。


同様に


配列変数


hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]


に文字データを格納するときも


今のプログラムに記述されているように


hairetu[0]='n';

hairetu[1]='e';

hairetu[2]='k';

hairetu[3]='o';


と 取り込みたい文字n,e,k,oをシングルクォーテーション' 'で


囲みます。


ではでは\(^o^)/ちょっと遊んで


配列の要素数(生成される配列変数の数)を


かかなくても


ビルドできるでしょうか?


試してみましょうか?


char hairetu[4];



char hairetu[];


と記入してプログラムをビルドしてみましょう。


そのプログラムはこちらです

👇


#include <iostream>


using namespace std;


int main() {



char hairetu[];


hairetu[0]='n';

hairetu[1]='e';

hairetu[2]='k';

hairetu[3]='o';


cout<<hairetu[0]<<"\n";

cout<<hairetu[1]<<"\n";

cout<<hairetu[2]<<"\n";

cout<<hairetu[3]<<"\n";


return 0;


}


プログラムの実行結果


エラー (アクティブ) E0070 不完全な型は使用できません

エラー C2133 'hairetu': サイズが不明です。




ははあ  これは😊




int型の配列宣言


int hairetu[4];



要素数をint hairetu[4];


のように記述しないで


int hairetu[];


と記述した


次のプログラムのビルド実行結果


#include <iostream>


using namespace std;


int main() {



int hairetu[];


hairetu[0]=1;

hairetu[1]=2;

hairetu[2]=3;

hairetu[3]=4;



cout<<hairetu[0]<<"\n";

cout<<hairetu[1]<<"\n";

cout<<hairetu[2]<<"\n";

cout<<hairetu[3]<<"\n";


return 0;


}


ビルド実行結果


エラー (アクティブ) E0070 不完全な型は使用できません

エラー C2133 'hairetu': サイズが不明です。


と同じですね。


このように


hairetu[0]='n';

hairetu[1]='e';

hairetu[2]='k';

hairetu[3]='o';



🌳配列変数に1文字ずつ文字を格納して配列を初期化する場合も🌳


数値を配列に格納する場合と同様に


配列宣言


char hairetu[4];


と要素数4が記入されてないと


ビルドエラーが表示されます。


では もっと簡単に


char型の配列宣言の初期化をしたいときは


どのように記述したらよいでしょうか?


int型の配列宣言の初期化をした場合と同様に


簡単に


char型の配列を初期化する記述方法があります。


以下のプログラムをみていきましょう。


#include <stdio.h>


int main(void)


{


char hairetu[4]={'n','e','k','o'};


#include <iostream>


using namespace std;


int main() {


char[] hairetu={'n','e','k','o'};//🌞簡単な方法でchar[]型の配列宣言をおこなっています



cout << hairetu[0] << "\n";

cout << hairetu[1] << "\n";

cout << hairetu[2] << "\n";

cout << hairetu[3] << "\n";


return 0;


}



プログラムの実行結果


n

e

k

o


あるいは


char hairetu[4]={'n','e','k','o'};



char hairetu[]={'n','e','k','o'};


と記述した



#include <iostream>


using namespace std;


int main() {


char hairetu[] = { 'n','e','k','o' };



cout << hairetu[0] << "\n";

cout << hairetu[1] << "\n";

cout << hairetu[2] << "\n";

cout << hairetu[3] << "\n";


return 0;


}


プログラムの実行結果


n

e

k

o


となります。


配列宣言、初期化が


char hairetu[]={'n','e','k','o'};


とまとめて記述されていて


とても簡単になっています。


char hairetu[]={'n','e','k','o'};


と[]内に


要素数を記述しないで配列宣言を


行った場合は


{'n','e','k','o'}内の文字


n

e

k

o


の数


4


にあわせて


自動的に


配列変数


hairetu[0]

hairetu[1]

hairetu[2]

hairetu[3]



4つ


生成され


hairetu[0]='n';

hairetu[1]='e';

hairetu[2]='k';

hairetu[3]='o';



配列変数に


文字データが格納されます。」

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る