1次元配列でなく2次元配列のなかに格納されている数値の数を配列のなかに格納されている文字列の文字数を数え上げるstrlen関数を使って数え上げる。

マックス 「Ⅰ次元配列の中に格納されている数値の数は


strlen関数を使って


なんとか無事に数え上げることができた。


次は


strlen関数を使って


2次元配列の中に格納されている数値の数を数え上げてみるか~


おもしろそうじゃないか😊」


(今更ですが😊


このお話では 配列内に格納されている数値の数を数え上げています。


文字列を数え上げているのではありませんので


配列内にはヌル文字\0は格納されていません。)


てんC「はいっ 


次は


2次元配列に格納された数値の数を


配列に格納された文字列の文字数を数え上げる


strlen関数を使って数えあげてみます。


例として


2次元配列宣言


int hairetu[2][3]={{1,2,3},{4,5,6}};


によって作成された配列のなかに格納されている数値の数を


”配列に格納された文字列の文字数を数え上げる”


strlen関数を使って数え上げてみます。


この2次元配列の中に格納されている数値の数は


1,2,3,4,5,6の6つですね。


先程のエピソードでもみてきましたが


通常の場合 一般に


配列に文字列ではなく数値を格納するときは


配列宣言、初期化は


変数の型

char型をつかって

char型の配列宣言


char hairetu[2][3]={{1,2,3},{4,5,6}};


が行われるのではなく


int型を使って

int型の配列宣言


int hairetu[2][3]={{1,2,3},{4,5,6}};


が行われます


char hairetu[2][3]={{1,2,3},{4,5,6}};


により生成される


char型の配列変数は-128から127の範囲外の


数値を格納できないからですね。


それでは


2次元配列宣言


int hairetu[2][3]={{1,2,3},{4,5,6}};


によって作成された配列のなかに


格納されている数値の数をstrlen関数を使って数え上げてみます。


カタカタカタ


#include <stdio.h>


int main(void)

{

int hairetu[2][3]={{1,2,3},{4,5,6}};


int a;

a=strlen(hairetu);

printf("hairetuに格納されている数値の数は%dです \n",a);

return 0;

}


コンパイル結果


hairetuに格納されている数値の数は1です


マックス「1か....ああっOH!!ノウ💦」


てんC 「strlen関数は


2次元配列内の数値の数を正確にかぞえあげることができていませんね(^^)。


次は3次元配列宣言

int hairetu[2][3][4]=

{{{2,3,4,5},{8,8,8,7},{3,8,2,8}},{{7,1,0,8},{3,2,4,5},{6,3,0,8}}};


によって作成される配列に格納されている数値の数を数え上げてみます。」


#include <stdio.h>


int main(void)

{

int hairetu[2][3][4]=

{{{2,3,4,5},{8,8,8,7},{3,8,2,8}},{{7,1,0,8},{3,2,4,5},{6,3,0,8}}};

int a;

a=strlen(hairetu);

printf("hairetuに格納されている数値の数は%dです \n",a);

return 0;

}


コンパイル結果


hairetuに格納されている数値の数は1です


マックス 「おおぅぅおにゃにゃにゃんと・・・


にゃんこショックです」


てんC 「ふ・・ふふ・・・マックスさん、


今度も


strlen関数は数値の数を正確にかぞえあげることができていませんね。」



マックス 「いや~ん・・・まあ、


さすがに2次元、3次元配列の中に格納されている数値の数を


もともと


”配列に格納された文字列の文字数を数え上げる”


strlen関数を使ってかぞえあげることはちょっと無理だったかにゃ・・」


まあ さすがに こんな感じに格納されている


{{{2,3,4,5},{8,8,8,7},{3,8,2,8}},{{7,1,0,8},{3,2,4,5},{6,3,0,8}}}


配列の中の数値の数をかぞえあげられないのは


無理もない・・・か」





#include <stdio.h>

int main(void)

{

int hairetu[]={{{1},{1}},{{1},{1}}};

int a;

a=strlen(hairetu);

printf("hairetuに格納されている数値の数は%dです \n",a);

return 0;

}


マックス「↑も無理そう・・・


見た感じからむっり」

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

作者を応援しよう!

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

応援したユーザー

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