C言語二次元文字配列の詳細
2354 ワード
2 D文字配列は、通常、複数の文字列を格納および処理するために使用され、2 D文字配列の各行に1つの文字列を格納できます.
2 D文字配列の定義
2 D文字配列の定義形式は次のとおりです.
char配列名[1次元サイズ][2次元サイズ];
次のようになります. char c[3][10];//3行10列の2次元文字配列c を定義する
2 D文字配列の初期化
通常、2 D配列の各行は1つの文字列で初期化されます.例: char c[3][8]={{"apple"},{"orange"},{"banana"}};
次のように等価です. char c[3][8]={"apple","orange","banana"};
上記の2つの初期化文では、2次元配列の1次元サイズは省略できます.配列cの論理構造は以下の通りである.
0
1
2
3
4
5
6
7
c[0]
a
p
p
l
e
\0
\0
\0
c[1]
o
r
a
n
g
e
\0
\0
c[2]
b
a
n
a
n
a
\0
\0
この2次元配列の各行c[0]、c[1]、c[2]は、いずれも10要素を含む1次元文字配列であるため、2次元配列の各行は1つの文字列を表すことができる.
2 D文字教示グループの参照
2 D文字配列の各要素(文字)は、行および列の下付きを使用して参照できます.たとえば、次のようになります. char c[][10]={"apple","orange","banana"};
次は、2 D文字配列要素に対する適切な参照です. printf ("%c",c[1][4]);//出力1行4列要素'g'文字 scanf ("%c",&c[2][3]);//2行3列要素の 文字を入力します. c[2][0]='B';//2行0列要素 に文字を割り当てる printf ("%s",c[1]);//c[1]は2行目の配列名(ヘッダ要素アドレス)でありorange を出力する. scanf ("%s",c[2]);//c[2]行に文字列を入力し、c[2]行のヘッダアドレスから を格納する.
次に、2 D文字配列要素の不正な参照を示します.
c[0][0]="A";//行、列の下付き文字は文字型要素であり、文字列付与printf("%c",c[2])は使用できません.//c[2]は3行目のヘッダアドレスであり、文字要素ではないので%cは使用できません
【例1】以下のプログラムを解析し、その実行結果を出力する.
0
1
2
3
4
c[0]
A
p
p
l
e
c[1]
O
r
a
n
g
c[2]
P
e
a
r
\0
printf ("%s",c[0]);//出力AppleOrangPear printf ("%s",c[1]);//出力OrangPear printf ("%s",c[2]);//Pear
実行結果:AppleOrangPear OrangPear Pear
(c言語中国語網より)http://c.biancheng.net/view/273.html
2 D文字配列の定義
2 D文字配列の定義形式は次のとおりです.
char配列名[1次元サイズ][2次元サイズ];
次のようになります.
2 D文字配列の初期化
通常、2 D配列の各行は1つの文字列で初期化されます.例:
次のように等価です.
上記の2つの初期化文では、2次元配列の1次元サイズは省略できます.配列cの論理構造は以下の通りである.
0
1
2
3
4
5
6
7
c[0]
a
p
p
l
e
\0
\0
\0
c[1]
o
r
a
n
g
e
\0
\0
c[2]
b
a
n
a
n
a
\0
\0
この2次元配列の各行c[0]、c[1]、c[2]は、いずれも10要素を含む1次元文字配列であるため、2次元配列の各行は1つの文字列を表すことができる.
2 D文字教示グループの参照
2 D文字配列の各要素(文字)は、行および列の下付きを使用して参照できます.たとえば、次のようになります.
次は、2 D文字配列要素に対する適切な参照です.
次に、2 D文字配列要素の不正な参照を示します.
c[0][0]="A";//行、列の下付き文字は文字型要素であり、文字列付与printf("%c",c[2])は使用できません.//c[2]は3行目のヘッダアドレスであり、文字要素ではないので%cは使用できません
【例1】以下のプログラムを解析し、その実行結果を出力する.
#include
int main (void){
char c[3][5] = {"Apple","Orange","Pear"};
int i;
for(i=0;i<3;i++)
printf ("%s
",c[i]);
return 0;}
。
0
1
2
3
4
c[0]
A
p
p
l
e
c[1]
O
r
a
n
g
c[2]
P
e
a
r
\0
実行結果:AppleOrangPear OrangPear Pear
(c言語中国語網より)http://c.biancheng.net/view/273.html