Menu
×
   ❮   
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 没有字符串类型来轻松创建字符串变量。相反,您必须使用 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”。

  = ;

开始练习



×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.