5.5、C++字符数组
2015-03-09 14:02
190 查看
用来存放字符数据的数组是字符数组,字符数组中的一个元素存放一个字符。字符数组具有数组的共同属性。由于字符串应用广泛,C和C++专门为它提供了许多方便的用法和函数。
定义字符数组的方法与前面介绍的类似。例如:
char c[10];
c[0]=′I′;c[1]=′ ′;c[2]=′a′;c[3]=′m′;c[4]=′ ′;c[5]=′h′;c[6]=′a′;c[7]=′p′;c[8]=′p′;c[9]=′y′;
上面定义了c为字符数组,包含10个元素。在赋值以后数组的状态如图5.7所示。
图5.7
对字符数组进行初始化,最容易理解的方式是逐个字符赋给数组中各元素。如
char c[10]={'I',' ','a','m',' ','h','a','p','p','y'};
把10个字符分别赋给c[0]~c[9]这10个元素。
如果花括号中提供的初值个数大于数组长度,则按语法错误处理。如果初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定为空字符。如果提供的初值个数与预定的数组长度相同,在定义时可以省略数组长度,系统会自动根据初值个数确定数组长度。如:
char c[]={'I',' ','a','m',' ','h','a','p','p','y'};
也可以定义和初始化一个二维字符数组,如
char diamond[5][5]={{' ',' ','*'},{' ', '*',' ','*'},{'*',' ',' ',' ','*'},{'
','*',' ','*'},{' ',' ','*'}};
只能对字符数组的元素赋值,而不能用赋值语句对整个数组赋值。如:
char c[5];
c={'C','h','i','n','a'}; //错误,不能对整个数组一次赋值
c[0]='C'; c[1]='h';c[2]='i';c[3]='n';c[4]='a'; //对数组元素赋值,正确
如果已定义了a和b是具有相同类型和长度的数组,且b数组已被初始化,请分析:
a=b; //错误,不能对整个数组整体赋值
a[0]=b[0]; //正确,引用数组元素
【例5.9】设计和输出一个钻石图形。
运行结果为:
字符数组的定义和初始化
定义字符数组的方法与前面介绍的类似。例如:char c[10];
c[0]=′I′;c[1]=′ ′;c[2]=′a′;c[3]=′m′;c[4]=′ ′;c[5]=′h′;c[6]=′a′;c[7]=′p′;c[8]=′p′;c[9]=′y′;
上面定义了c为字符数组,包含10个元素。在赋值以后数组的状态如图5.7所示。
图5.7
对字符数组进行初始化,最容易理解的方式是逐个字符赋给数组中各元素。如
char c[10]={'I',' ','a','m',' ','h','a','p','p','y'};
把10个字符分别赋给c[0]~c[9]这10个元素。
如果花括号中提供的初值个数大于数组长度,则按语法错误处理。如果初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定为空字符。如果提供的初值个数与预定的数组长度相同,在定义时可以省略数组长度,系统会自动根据初值个数确定数组长度。如:
char c[]={'I',' ','a','m',' ','h','a','p','p','y'};
也可以定义和初始化一个二维字符数组,如
char diamond[5][5]={{' ',' ','*'},{' ', '*',' ','*'},{'*',' ',' ',' ','*'},{'
','*',' ','*'},{' ',' ','*'}};
字符数组的赋值与引用
只能对字符数组的元素赋值,而不能用赋值语句对整个数组赋值。如:char c[5];
c={'C','h','i','n','a'}; //错误,不能对整个数组一次赋值
c[0]='C'; c[1]='h';c[2]='i';c[3]='n';c[4]='a'; //对数组元素赋值,正确
如果已定义了a和b是具有相同类型和长度的数组,且b数组已被初始化,请分析:
a=b; //错误,不能对整个数组整体赋值
a[0]=b[0]; //正确,引用数组元素
【例5.9】设计和输出一个钻石图形。
#include <iostream> using namespace std; void main( ) { char diamond[][5]={{' ',' ','*'},{' ','*',' ','*'},{'*',' ',' ',' ','*'},{' ','*',' ','*'},{' ',' ','*'}}; int i,j; for (i=0;i<5;i++) { for (j=0;j<5;j++) cout<<diamond[i][j]; //逐个引用数组元素,每次输出一个字符 cout<<endl; } }
运行结果为:
相关文章推荐
- [转]c/c++中的字符指针数组,指向指针的指针的含义
- (27)'c++:COMPLETE REFERENCE' 第一部分 第四章(数组和以空字符结束的字符串) 第二节
- C++中文字符数组示例程序
- C/C++中字符指针数组及指向指针的指针的含义
- C/C++——字符串和字符数组
- 挑战30天C++入门极限-C/C++中字符指针数组及指向指针的指针的含义
- C/C++中字符指针数组及指向指针的指针的含义
- C/C++结构体内尾部0字节字符数组技巧
- C++中将字节数组转换为字符数组的两个方法
- 关于LinuxC/C++中字符指针char * str 与字符数组 char str []的一点小区别
- (28)'c++:COMPLETE REFERENCE' 第一部分 第四章(数组和以空字符结束的字符串) 第三节
- (33)'c++:COMPLETE REFERENCE' 第一部分 第四章(数组和以空字符结束的字符串) 第八节
- (32)'c++:COMPLETE REFERENCE' 第一部分 第四章(数组和以空字符结束的字符串) 第七节
- C和C++中字符数组和布尔型bool问题和Java输入
- 在C++中如何将ActiveX控件所使用的BSTR数据转换成CHAR字符数组?
- (26)'c++:COMPLETE REFERENCE' 第一部分 第四章(数组和以空字符结束的字符串) 第一节
- (31)'c++:COMPLETE REFERENCE' 第一部分 第四章(数组和以空字符结束的字符串) 第六节
- c++中字符数组或者字符串中的内容在VS debug环境中不能完全显示
- C++字符数组表示字符串--易错标识
- C/C++——字符串和字符数组