C 教程

浏览3732
更新时间2025-08-05

字符串

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

例如,"Hello World" 就是一个由字符组成的字符串。

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

char greetings[] = "Hello World!";

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

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

实例

char greetings[] = "Hello World!";
printf("%s", greetings);
运行实例 »

点击 "运行实例" 按钮查看在线实例

访问字符串

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

此例打印 greetings 中的第一个字符 (0)

实例

char greetings[] = "Hello World!";
printf("%c", greetings[0]);
运行实例 »

点击 "运行实例" 按钮查看在线实例

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

修改字符串

要更改字符串中特定字符的值,请引用索引号并使用单引号

实例

char greetings[] = "Hello World!";
greetings[0] = 'J';
printf("%s", greetings);
// 输出 Jello World! 而不是 Hello World!
运行实例 »

点击 "运行实例" 按钮查看在线实例

遍历字符串

您也可以使用 for 循环来遍历字符串中的字符:

实例

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

for (i = 0; i < 5; ++i) {
  printf("%c\n", carName[i]);
}
运行实例 »

点击 "运行实例" 按钮查看在线实例

正如我们在数组章节中所述,您还可以使用 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[] = "很高兴见到你,";
char fname[] = "Bill";

printf("%s %s!", message, fname);
运行实例 »

点击 "运行实例" 按钮查看在线实例

相关视频

更多

免费

php8,我来也
初级php8,我来也

321849次学习

收藏

免费

Thinkphp6.0正式版视频教程
中级Thinkphp6.0正式版视频教程

382472次学习

收藏

免费

细说PHP第一季
中级细说PHP第一季

282866次学习

收藏

免费

简单聊聊PHP创业那点事
初级简单聊聊PHP创业那点事

13418次学习

收藏
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号