C 字符串
字符串
字符串用于存储文本/字符。
例如,“Hello World”是一个字符组成的字符串。
与许多其他编程语言不同,C 语言没有内置的 String 类型来轻松创建字符串变量。相反,您必须使用 char
类型并创建一个字符 数组 来在 C 语言中创建字符串。
char greetings[] = "Hello World!";
请注意,您必须使用双引号(""
)。
要输出字符串,可以使用 printf()
函数,并配合格式说明符 %s
来告诉 C 语言我们正在处理字符串。
访问字符串
由于字符串在 C 语言中实际上是 数组,您可以通过方括号 []
中的索引号来引用字符串。
此示例将打印 **greetings** 中的第一个字符 (0)
请注意,我们必须使用 %c
格式说明符来打印单个字符。
修改字符串
要更改字符串中特定字符的值,请引用索引号,并使用单引号。
示例
char greetings[] = "Hello World!";
greetings[0] = 'J';
printf("%s", greetings);
// 输出 Jello World! 而不是 Hello World!
自己动手试一试 »
遍历字符串
您还可以使用 for
循环来遍历字符串的字符。
正如我们在 数组章节中指定的,您也可以使用sizeof 公式(而不是在循环条件中手动写数组的大小 (i < 5)
)来使循环更具可持续性。
示例
char carName[] = "Volvo";
int length = sizeof(carName) / sizeof(carName[0]);
int i;
for (i = 0; i < length; ++i) {
printf("%c\n", carName[i]);
}
自己动手试一试 »
另一种创建字符串的方法
在上面的例子中,我们使用了“字符串字面量”来创建字符串变量。这是 C 语言中创建字符串最简单的方法。
您还应该注意,您可以创建一个字符数组。此示例将产生与本页面开头示例相同的结果。
示例
char greetings[] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!', '\0'};
printf("%s", greetings);
自己动手试一试 »
为什么我们在末尾包含 \0
字符? 这被称为“空终止符”,在使用此方法创建字符串时必须包含它。它告诉 C 语言,这是字符串的结尾。
区别
创建字符串的两种方法之间的区别在于,第一种方法更容易编写,并且您不必包含 \0
字符,因为 C 语言会为您处理。
您应该注意到,两个数组的大小是相同的:它们都包含13 个字符(顺便说一下,空格也算作一个字符),包括 \0
字符。
示例
char greetings[] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!', '\0'};
char greetings2[] = "Hello World!";
printf("%lu\n", sizeof(greetings)); // 输出 13
printf("%lu\n", sizeof(greetings2)); // 输出 13
自己动手试一试 »
现实生活中的例子
使用字符串创建一个简单的欢迎消息
示例
char message[] = "Good to see you,";
char fname[] = "John";
printf("%s %s!", message, fname);
自己动手试一试 »