C语言对于字符串没有特定的变量类型,并且没有用于处理字符串的特殊运算符。使用char
类型的数组来保存字符串。可以像这样声明一个数组变量:
char saying[20];
此变量可以存储包含最多19
个字符的字符串,因为必须为终止字符(\0
)预留占用一个元素。
如果使用此数组存储20
个不是字符串的字符,例如存储字符串的数组小于字符数。编译器会自动将\0
添加到每个字符串常量的末尾。例如下面代码:
char saying[] = "This is a string.";
编译器将分配一个足以容纳初始化字符串常量的值。在这种情况下,分配的值是18
,这是字符串中的字符的17
个元素加上用于终止字符的\0
的一个额外元素。
可以使用字符串初始化char
类型的元素数组的一部分。 例如:
char str[40] = "To be";
编译器将初始化前五个元素str[0]
到str[4]
,字符串的字符为常量。
str[5]
将包含空字符'\0'
。
为数组的所有40
个元素分配空间,并且可以以任何想要的方式使用。以下代码创建一个char
数组并声明为常量:
const char message[] = "The end of the world is nigh.";
要引用存储在数组中的字符串,请单独使用数组名称。例如,要使用printf()
函数输出存储在消息中的字符串,可以这样写:
printf("\nThe message is: %s", message);
%s
指示符用于输出以null
结尾的字符串。