C 语言字符串

字符串

字符串用于存储文本/字符。

例如,"Hello World" 是一个字符串。

与许多其他编程语言不同,C 语言没有字符串类型来轻松创建字符串变量。但是,您可以使用 char 类型并创建一个字符数组来生成 C 中的字符串:

  1. char greetings[] = "Hello World!";

请注意,您必须使用双引号。

要输出字符串,可以使用 printf() 函数和格式说明符 %s 告诉 C 我们现在正在处理字符串:

实例
  1. #include <stdio.h>
  2. int main() {
  3. char greetings[] = "Hello World!";
  4. printf("%s", greetings);
  5. return 0;
  6. }

访问字符串

因为字符串实际上是 C 语言中的数组,所以可以通过引用方括号 [] 中的索引号来访问字符串。本例打印问候语中的第一个字符(0):

实例
  1. #include <stdio.h>
  2. int main() {
  3. char greetings[] = "Hello World!";
  4. printf("%c", greetings[0]);
  5. return 0;
  6. }

请注意,我们必须使用 %c 格式说明符来打印 单个 字符。


修改字符串

要修改字符串中特定字符的值,根据索引号,并使用 单引号:

实例
  1. #include <stdio.h>
  2. int main() {
  3. char greetings[] = "Hello World!";
  4. greetings[0] = 'J';
  5. printf("%s", greetings);
  6. return 0;
  7. }

另一种创建字符串的方法

在上面的实例中,我们使用 "字符串字面常量" 来创建字符串变量。这是在 C 语言中创建字符串的最简单方法。

还应注意,可以使用一组字符创建字符串。这个例子将产生与上面相同的结果:

实例
  1. #include <stdio.h>
  2. int main() {
  3. char greetings[] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!', '\0'};
  4. char greetings2[] = "Hello World!";
  5. printf("%s\n", greetings);
  6. printf("%s\n", greetings2);
  7. return 0;
  8. }
为什么要在结尾包含 \0 字符?这被称为 "空终止字符",在使用此方法创建字符串时必须包含它。它告诉 C 语言这是字符串的结尾。

不同之处

这两种创建字符串的方法的不同之处在于,第一种方法更容易编写,而且不必像 C 那样包含 \0 字符。

您应该注意,两个数组的大小是相同的:它们都有 13 个字符(顺便说一下,空格也算作一个字符),包括 \0 字符:

实例
  1. #include <stdio.h>
  2. int main() {
  3. char greetings[] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!', '\0'};
  4. char greetings2[] = "Hello World!";
  5. printf("%lu\n", sizeof(greetings));
  6. printf("%lu\n", sizeof(greetings2));
  7. return 0;
  8. }