菜单
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

C 字符串


字符串

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

例如,“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[] = "Good to see you,";
char fname[] = "John";

printf("%s %s!", message, fname);
自己动手试一试 »

C 练习

通过练习来测试自己

练习

填空以创建一个名为 greetings 的“字符串”,并为其赋值“Hello”。

  = ;

开始练习



×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持