字符数组

C语言中不存在字符串类型,字符串是存放在字符数组中。用来存放字符的数组是字符数组,我们可以像定义一维数组那样来定义一个字符数组:

char  a[10];

这样我们定义了一个可以存放十个字符的数组a。由于字符是以整数形式存储,因此我们也可以用整形的数组存放字符,例如:

int  a[10];
a[0] = ‘a’;

这样是合法的,但浪费存储空间。因为一个int型的存储空间是4字节,但一个字符只占用1字节,剩下的3字节是浪费的。

对字符数组进行初始化的方法也有很多中,其中最容易理解的方法是:

char  a[10] = {‘W’ , ‘E’ , ‘L’ , ‘C’ , ‘O’ , ‘M’ , ‘E’};

这个时候,数组a的存放状态如下:

W E L C O M E \0 \0 \0

需要提到的是,在字符数组中,最后一位一定以空字符(’\0’)结束,作为字符数组结束的标志。除此之外,我们还有另外一种初始化字符数组的方法:

char  a[] = “WELCOME”;

用这种方法定义字符数组,是直接把字符串赋值给数组,字符串用双撇号括在一起。当用printf输出字符数组时,检查到第一个’\0’时即停止输出。当我们对字符数组进行输入输出时,可以对数组的某个元素进行输入输出,也可以对整个数组进行输出。例如:

char  a[] = “BOY”;
printf(“%s” , a);    //%s意为以字符串形式输出/输入
printf(“%c” , a[0]);    //用%c输出/输入单个元素

此外,C语言还提供了一些字符串处理函数:

函数名与调用方式 作用
puts(字符数组); 将一个字符串输出到屏幕上
gets(字符数组); 从输入终端获取一个字符串
strcat(字符数组1,字符数组2); 将字符串2接在字符串1的后面
strcpy(字符数组1,字符串2); 将字符串2赋值到字符串1里
strcmp(字符串1,字符串2); 字符串比较大小
strlen(字符串); 返回字符串的长度
srtlwr(字符串); strupr(字符串); 将字符串转换为大写/小写

当使用这些函数时,要在预处理部分将string.h头文件包含在程序中。

这本书是xt写的上次修改: 2019-04-18 15:24:43

results matching ""

    No results matching ""