在C语言里,没有提供专门的字符串类型,所以需要使用字符数组来处理字符串。字符数组是最常用的一维数组,因为C语言经常用它来书写与字符或字符序列处理有关的程序。字符数组是以字符作为元素的数组,可用于存储和处理字符型数据。字符数组中一个元素存放一个字符。
1. 字符数组的定义及初始化
定义并初始化字符数组有两种方法。
(1)用字符为字符数组赋初值
例如下面语句
char word1[4]={'t','r','e','e'};
(2)用字符串常量为字符数组赋初值
例如下面语句
char word2[5]="tree";
注意:C语言会自动在字符串的结尾添加一个终止符'\0',因此word2中的字符数为4,而数组长度为5。
2. 字符数组的输入和输出
字符数组的输入输出有以下两种方式:
一种是像一般数组一样,一个一个元素地依次使用%c格式进行输入或输出,但使用起来很不方便。
另一种通常是将整个字符数组作为一个整体来进行的,为此要使用scanf函数和printf函数的%s格式。此外,C语言还提供了gets和puts两个函数,可以更方便地进行字符串的输入和输出。
(1)使用scanf函数和gets函数输入字符串
要使用scanf函数输入字符串,需要在scanf的格式字符串中使用%s参数,比如
scanf("%s",word);
用gets函数来输入一个字符串,其一般形式为:
gets(字符数组名);
作用是从终端输入一个字符串到字符数组,比如
gets(word);
(2)使用printf函数和puts函数输出字符串
使用printf函数输出字符串,也需要使用%s格式,例如:
printf("%s",word);
将字符数组word以字符串的形式输出。输出时,第一次遇到结束标记'\0'就停止输出,而不管其后还有没有别的字符。
使用puts函数来输出一个字符串,其格式为:
puts(字符数组名)
其作用是将一个字符串输出到终端,并在输出时将字符串结束标记'\0'转换成'\n',即输出完字符串后换行,如
char word[]="abc",word1[]="def";
puts(word); puts(word1);

