C 字符串


字符串

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

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

与许多其他编程语言不同,C 没有字符串类型轻松创建字符串变量。相反,您必须使用char键入并创建一个数组在 C 中创建字符串的字符:

char greetings[] = "Hello World!";

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

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

示例

char greetings[] = "Hello World!";
printf("%s", greetings);
亲自试一试 »

访问字符串

由于字符串实际上是数组在C中,您可以通过引用方括号内的索引号来访问字符串[]

此示例打印第一个字符 (0)问候:

示例

char greetings[] = "Hello World!";
printf("%c", greetings[0]);
亲自试一试 »

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


修改字符串

要更改字符串中特定字符的值,请参考索引号,然后使用单引号:

示例

char greetings[] = "Hello World!";
greetings[0] = 'J';
printf("%s", greetings);
// Outputs Jello World! instead of Hello World!
亲自试一试 »

循环遍历字符串

您还可以使用循环遍历字符串的字符for环形:

示例

char carName[] = "Volvo";
int i;

for (i = 0; i < 5; ++i) {
  printf("%c\n", carName[i]);
}
亲自试一试 »

创建字符串的另一种方法

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

您还应该注意,您可以创建包含一组字符的字符串。此示例将产生与本页开头的示例相同的结果:

示例

char greetings[] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!', '\0'};
printf("%s", greetings);
亲自试一试 »

为什么我们要包括\0最后的角色?这称为"null terminating character",在使用此方法创建字符串时必须包含该"null terminating character"。它告诉 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));   // Outputs 13
printf("%lu\n", sizeof(greetings2));  // Outputs 13
亲自试一试 »

C 练习

通过练习测试一下

练习:

填写缺失的部分以创建一个名为 "string"问候,并为其指定值 "Hello"。

  = ;

开始练习