一维字符型数组就是数据类型为char
的,用来存放字符串的数组
定义:数据类型 数组名[ 数组长度 ];
eg:
char s1[100];
char s2[] = {'h','e','l','l','o'};
char s3[] = "hello";
从数组角度来看:
- 可以使用
char s[20] = {'a','b','c','d'};
的方式初始化数组。 - 一维字符型数组常用于存放字符串,如
"hello"
。
从字符串角度来看:
- 字符串常被当作字符数组来处理。
- 字符串有专门的结束标志
'\0'
。 - 处理字符串时,往往以结束标志为操作依据;处理数组时,往往以数组长度作为操作依据。
- 字符数组可以存储字符串,而字符串在内存中的存储方式也是以字符数组形式存在。例如
"hello"
在内存中实际存储为'h''e''l''l''o''\0'
,其实际占用的内存空间包含了'\0'
。空字符串为""
,在内存中也包含'\0'
。
例如,如果要判断一个字符串是否结束,就可以通过查找'\0'
来确定。又如,在遍历一个字符数组表示的字符串时,遇到'\0'
就知道字符串结束了。再比如,在为字符数组赋值字符串时,系统会自动在末尾添加'\0'
。
相关函数
1、puts()——输出函数
一般形式为:puts(字符数组);
其作用是将一个字符串(以 '\0' 结束的字符序列)输出到终端。假如已定义 str 是一个字符数组名,且该数组已被初始化为"China" 。则执行: puts(str); 其结果是在终端上输出 "China" 。
2、gets()
其一般形式为:gets(字符数组);
其作用是从终端输入一个字符串到字符数组,并且得到一个函数值。该函数值是字符数组的起始地址。
gets(str);从键盘输入字符串到数组str。
3、strlen()
strlen (字符数组);
计算字符串长度;
4、strcpy()
strcpy(字符数组1,字符串2);
将字符串2复制到字符数组1中去。
" 字符串 2" 可以是字符数组名,也可以是一个字符串常量。
5、strcat()
strcat(字符数组1,字符数组2);
把字符串2接到字符串1的后面。
6、strcmp()
strcmp(字符串 1, 字符串 2);
比较两个字符串的大小。