Strings
C 语言中的 string 是内存中的一个字节序列,通常包含一串字母。C 语言中的字符串常量由双引号引上。比如最经典的 Hello World 程序:
# include <stdio.h>
int main(void) {
printf("Hello World!\n");
return 0;
}
那么, string 到底是什么类型呢?字符串常量的类型是 char* 。但是你也可以把一个字符串放在一个 char 型的数组中。char* 指针指向的是字符串的第一个字符。
char *s = "Hello!";
printf("%s\n", s); /* prints "Hello!" */
printf("%c\n", *s); /* prints 'H' */
printf("%c\n", s[0]); /* prints 'H' */
printf("%c\n", s[1]); /* prints 'e' */
printf("%c\n", s[4]); /* prints 'o' */
%c 用来打印单个字符,%s用来打印一个字符串
同样,也可以在定义时就初始化 char 数组:
char s[20] = "The aliens are comming!";
也可以在运行期修改数组元素:
char s[20] = "Give me $10!";
printf("%s\n", s); /* prints "Give me $10!" */
s[9] = '8';
printf("%s\n", s); /* prints "Give me $80!" */
注意到,字符常量使用的是单引号。
还有一件事需要记住的是:当指明一个数组名时(不带中括号),就像使用一个指向数组首元素的指针:
char a[20] = "Cats are better.";
char* p;
p = a; // p 现在指向了 a 的第一个元素
请注意
C 中的字符串是以 NULL 字符结尾的,也就是 0 (正确的写法是 “\0”).你可以在字符串中添加 “\0” 来截断这个字符串。另外,所有的字符串操作都假设它是以 NULL 字符结尾的。