本页目录
2. 字符数组
发布时间:
字符数组
字符数组是指元素为字符的数组。字符数组是用来存放字符序列或字符串的。字符数组有一维和多维之分。
一 、 定义
[存储类型] char 数组名[常量表达式1]…
js
char ch1[5]; //数组ch1是一个具有5个字符元素的一维字符数组
1
字符数组定义格式同于一般数组,所不同的是数组类型是字符型,第一个元素同样是从ch1[0]开始,而不是ch1[1]。
二、 初始化
js
char chr1[5]={'a','b','c','d','e'}; //始值个数少于元素个数时,从首元素开始赋值,剩余元素默认为空字符
char chr2[5]={'a','b','c','d','\0'}; //即在数组chr2中存放着一个字符串“abcd”。
char chr3[5]="abcd";// 与char2 完全相同。
char chr4[5]={‘a’,'\0','\0','\0','\0'};
char chr5[5]={‘a’};// 与char4 完全相同。
char chr6[5]={‘\0’,'\0','\0','\0','\0'};
main()前面定义 char chr7[5];//与char6完全相同。
char chr3[3][4]={"abc","mno","xyz"};在数组ch3中存放3个字符串,每个字符串的长度不得大于3。
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
三、 元素赋值
字符数组的赋值是给该字符数组的各个元素赋一个字符值。例如:
js
char chr[3];
chr[0]=‘a’; chr[1]=‘b’;chr[2]=‘c’;
1
2
2
对二维、三维字符数组也是如此。当需要将一个数组的全部元素值赋予另一数组时,不可以用数组名直接赋值的方式,要使用字符串拷贝函数来完成。
(4).字符常量和字符串常量的区别
①两者的定界符不同,字符常量由单引号括起来,字符串常量由双引号括起来。
②字符常量只能是单个字符,字符串常量则可以是多个字符。
③可以把一个字符常量赋给一个字符变量,但不能把一个字符串常量赋给一个字符变量。
④字符常量占一个字节,而字符串常量占用字节数等于字符串的字节数加1。增加的一个字节中存放字符串结束标志‘\0’。例如:字符常量‘a’占一个字节,字符串常量“a”占二个字节。
(5).用getchar()获取连续字符包括空格
三 综合运用
【例5.16】过滤空格
过滤多余的空格。一个句子中也许有多个连续空格,过滤掉多余的空格,只留下一个空格。
输入样例
js
Hello world.This is c language.
1
输出样例
js
Hello world.This is c language.
1
js
#include <iostream>
using namespace std;
int main() { // 【例5.16】过滤空格
int i = 0;
char a[1000];
memset(a, '0', sizeof(a));
a[0] = getchar();
char b ;
do {
b = getchar();
if (b == ' ' &&a[i]==' '){
}else{
a[++i]=b;
}
} while (b!='\n');
a[++i]='\0';//字符数组存字符串,添加’\0‘结尾标志。
cout << a;
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20