C言語 char二次元文字配列






スポンサードリンク

先日説明させて頂いた二次元配列を用いて、【 char 】文字列型の二次元配列に付いて説明させていただきたいと思います。

二次元サンプル(整数型(int)、実数型(double)、文字列型(char)のサンプル
要素数を二つ並べると二次元
int mydt[2][2];

double mydt[3][5];

char [4][6];

三次元配列サンプル
要素数を三つ並べると三次元
int mydt[1][1][3];

double mydt[2][2][4];

char [3][3][2];

要素:mydt[要素] 任意に用意した配列の数。
下図の赤線部分が要素です。



二次元配列の場合【 char moji[2][3]; 】とした場合
以下のように三行二組メモリ上に確保されます。
moji[0][0]
moji[0][1]
moji[0][2]
moji[1][0]
moji[1][1]
moji[1][2]

二次元文字配列に初期値を設定する場合
int moji[2][3] = {"AB","CD"};
二次元文字配列(多次元含む)に初期値を設定すると、先に変化する要素(添字)の順番で割り当てられます。
※charを用いた場合、文字終端マーク"0"だ代入される為、0が代入されます。
moji[0][0] A
moji[0][1] B
moji[0][2] 0
moji[1][0] C
moji[1][1] D
moji[1][2] 0
確認サンプル
解説:【 moji[0][i] 】のループと【 moji[1][i] 】を出力するループをそれぞれ作成し、
上記の表の通り i に0を代入して一づつ加算させて出力するようにしてみました。

#include <stdio.h>

int main(void)
{
char moji[2][3]={"AB","CD"};
int i;
for(i=0; i<=2; ++i){
printf("%c",moji[0][i]);
}
printf("\n");
for(i=0; i<=2; ++i){
printf("%c",moji[1][i]);
}

return 0;
}

実行結果


要素数を増やした場合。
※初期値に{ }を多様するのは、一般的で、記述を確認しやすくする為です。

char moji[6][10] = {
         {"ABCDEFG"},
         {"abcdefg"},
         {"HIJK"},
         {"hijk"},
         {"LMNOPQRS"},
         {"lmnopqrs"}
         };

表にまとめると以下の様に代入されます
moji[][0] moji[][1] moji[][2] moji[][3] moji[][4] moji[][5] moji[][6] moji[][7] moji[][8] moji[][9]
moji[0][] A B C D E F G 0
moji[1][] a b c d e f g 0
moji[2][] H I J K 0
moji[3][] h i j k 0
moji[4][] L M N O P Q R S 0
moji[5][] l m n o p q r s 0
確認サンプル
それぞれ文字が存在する【 moji[][3] 】の項目で確認と

#include <stdio.h>

int main(void)
{

char moji[6][10]={
{"ABCDEFG"},
{"abcdefg"},
{"HIJK"},
{"hijk"},
{"LMNOPQRS"},
{"lmnopqrs"}
};

int i;
for(i=0; i<=5; ++i){
printf("moji[%d][3]=%c\n", i, moji[i][3]);
}

return 0;
}

上記の実行結果です
上記の表の通り出力されているのがわかります。


二次元配列で代入された文字列を指定する方法の確認です。
※二次元配列で文字列を指定するには、配列要素の先頭を指定すれば、配列に代入された文字が出力されます。
※2、ループ実行条件の【 printf("%s",moji[i]); 】としておりますが、ループ条件はiに0〜5まで加算してそれぞれ出力としていますので、ループ条件を書かない場合以下の記述と同じになります。
【 printf("%s",moji[0]); 】〜【 printf("%s",moji[5]); 】

#include <stdio.h>

int main(void)
{

char moji[6][10]={
{"ABCDEFG"},
{"abcdefg"},
{"HIJK"},
{"hijk"},
{"LMNOPQRS"},
{"lmnopqrs"}
};

int i;
for(i=0; i<=5; ++i){
printf("moji[%d][]=%s\n", i, moji[i]);
}

return 0;
}

上記の実行結果です。


簡単ですが説明は以上です。

あかかげまるのC言語入門はこちら!!

スポンサードリンク

パソコン勉強部屋 | パソコン勉強部屋2 | ADSL勉強部屋 | メール勉強部屋 | LAN勉強部屋 | ホームページ勉強部屋 | 自宅サーバー勉強部屋 | お役立ちソフトの部屋 | C言語勉強 | 無料ゲーム | 無料セキュリティー | Linuxのコーナー | あかかげまる | オンライン通販 | ショップブランドパソコン | DVDとCD編集ツール

 Subscribe in a reader


ページトップへ