|
C语言并不支持字符串的序列,可看做是一个单个数据项。我们在前面的很多示例中已经使用过字符串了。定义在双引号之间的字符组就是一个字符串常量。例如:
"\"Man is obviously made to think,\"said Pascal"
例如,语句
printf("\"Well Done!"\");
将输出字符串
"Well Done!"
而
printf("\"Well Done!"\");
的输出为
Well Done!
字符串经常用于创建有意义且可读性好的程序。作用于字符串的常见操作包括:
读写字符串;
字符串的合并;
字符串的复制;
比较两个字符串是否相等;
从字符串中提取子字符串。
字符串变量的声明与初始化
C语言并不支持字符串数据类型。但是,它允许使用字符数组来表示字符串,因此,在C语言中,字符串变量就是一个字符数组。字符串变量声明的一般形式为:
char string_name[size];
其中,size确定了string_name的字符数。示例如下:
char city[10];
char name[30];
当编译器把字符串赋给字符数组时,会自动地在字符串的末尾添加空字符。因此,size必须等于字符串中的最大字符数再加上1。
与数字数组一样,字符数组也可以在声明时进行初始化。C语言允许以如下两种方式初始化:
char city[9]="
char city[9]={'N' 'E' 'W' 'Y' 'O' 'R'
'K','\0''};
数组city的大小必须为9个的原因是,字符串NEW YORK含有8个字符,另外还有一个空字符。注意,当以元素列举的方式初始化字符数组时,必须显示地加上空字符。
C语言在初始化字符数组时,也可以不用指定数组的大小。在这种情况下,数组的大小将根据初始化元素的数量自动确定。例如,语句
char string={'G','O','O','D','\0'};
会将数组string定义为包含5个元素的数组。
也可以把数组的大小声明得比初始化的字符串更大。也就是说,语句
char str1[10]="GOOD"
是合法的。在这种情况下,计算机创建一个大小为10的字符数组,并把值“GOOD置于其中,以空字符结尾,其他元素则初始化为空字符。
用作终止的空字符
读者也许会纳闷:“为什么需要空字符?”我们已经知道,字符串不是C语言的数据类型,但它使存储在数组中的一种数据结构。字符串是长度可变的数据结构,存储在长度固定的数组中。由于数组大小并不总是字符串的大小么大多数时候比保存在其中的字符串更大,因此,不能用数组的最后一个元素来表示字符串的结尾,而是需要某种方法来确定字符串数据的结尾,空字符就起到了“字符串结尾”标识符的作用。
凌阳教育,全国唯一一家原厂式嵌入式培训机构,专业从事嵌入式人才培训13年,最近新开课程信息安全工程师培训,想了解更多嵌入式资料下载或者是凌阳教育的动态,请访问凌阳教育官网www.sunplusedu.com