1.字符串的存储
C语言中字符串的存储要通过字符型数组来实现,但对于字符型数组必须最后一个元素为’\0'时才表示字符串。空字符(Null character)又称结束符,缩写 NUL,是一个数值为 0 的控制字符,\0 是转义字符,意思是告诉编译器,这不是字符 0,而是空字符。如:
就定义了一个6个元素的字符数组arr。
也可以省略对数组长度的声明,如:
注意:像这样的定义数组不可省略'\0'
可以用更简单的方法定义,如:
若要存储多个字符串,则可采用二维数组。
2. 字符串的访问
字符数组和其他类型的数组均可采用访问下标的方式来访问,例如:
此时输出结果为:
此外,还可以通过指针来进行访问,如:
此时仍可以得到和上述相同的结果。
3.字符串的输入/输出
3.1 scanf 和 gets 函数
共同点:scanf 和 gets 均可以用来作为字符串的输入,其对应的输出函数分别时printf和 puts。
如:
和
输入hello均可得到以下结果:
注意:scanf遇到空格、回车或制表符等空白字符就会终止。而gets认为空格和制表符也是字符,可以输入,遇到回车才会终止!
但使用scanf或 gets函数存在一个问题:当输入的字符串长度大于数组的大小时,多出的字符无法写入,程序就会出错:
此时可以使用限制输入字符串长度的函数fgets(),形式如下: