二维字符数组一般用于存储和处理多个字符串,二维字符数组中的每一行均可存储表示一个字符串。
二维字符数组的定义
二维字符数组的定义格式为:
char 数组名[第一维大小][第二维大小];
如:
- char c[3][10]; //定义了一个3行10列的二维字符数组c
二维字符数组的初始化
通常情况下,二维数组的每一行分别使用一个字符串进行初始化。 例如:
- char c[3][8]={
{“apple”},{“orange”},{“banana”}};
等价于:
- char c[3][8]={“apple”,”orange”,”banana”};
| 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 |
由于该二维数组的每一行 c[0]、c[1]、c[2] 均是含有 10 个元素的一维字符数组,即二维数组的每一行均可表示一个字符串。
二维字符教组的引用
可以使用行下标和列下标引用二维字符数组中的每个元素(字符),例如:
- char c[][10]={“apple”,”orange”,”banana”};
- 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]行的首地址开始存放
【例 1】 分析以下程序,输出其运行结果。
#include
int main (void){ char c[3][5] = {"Apple","Orange","Pear"}; int i; for(i=0;i<3;i++) printf ("%s\n",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 |
- printf (“%s\n”,c[0]); //输出AppleOrangPear
- printf (“%s\n”,c[1]); //输出OrangPear
- printf (“%s\n”,c[2]); // Pear
(来源自c语言中文网)http://c.biancheng.net/view/273.html
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/217022.html原文链接:https://javaforall.net
