📜  C字符串(1)

📅  最后修改于: 2023-12-03 15:00:12.253000             🧑  作者: Mango

C字符串介绍

在C语言中,字符串是一种特殊的数组。它是由一系列字符组成的,以空字符 '\0' 结尾,表示字符串的结束。当我们定义一个字符串时,可以使用字符数组来存储。

char myString[20] = "Hello World!";

以上定义了一个数组 myString,长度为20,用于存储字符串 "Hello World!"。注意,数组最后一个元素必须为 '\0',这也是字符串的结束标志。

字符串的使用

C提供了一组库函数,用于操作字符串。以下是一些常用的字符串函数:

  • **strcpy(char dest, const char src)

将源字符串 src 复制到目标字符串 dest 中。

char str1[20], str2[20];
strcpy(str1, "Hello");
strcpy(str2, str1);

以上代码将 "Hello" 复制到 str1 中,并将 str1 复制到 str2 中。

  • *strlen(const char s)

获取字符串的长度,不包括末尾的空字符。

char str[20] = "Hello";
int len = strlen(str);  // len 的值为 5
  • **strcat(char dest, const char src)

将源字符串 src 连接到目标字符串 dest 的末尾。

char str1[20] = "Hello";
char str2[20] = "World";
strcat(str1, str2);

以上代码将 "World" 添加到 "Hello" 的末尾,生成字符串 "HelloWorld"。

  • **strcmp(const char s1, const char s2)

比较两个字符串 s1 和 s2 是否相同。

char str1[20] = "Hello";
char str2[20] = "World";
int result = strcmp(str1, str2);  // result 的值为负数,因为 "Hello" 小于 "World"

以上代码将比较两个字符串,由于 "Hello" 比 "World" 小,所以 result 的值为负数。

字符串数组

C语言也支持存储多个字符串的数组。以下是一个字符串数组的例子:

char names[5][20] = {
    "Alice",
    "Bob",
    "Charlie",
    "David",
    "Emily"
};

以上定义了一个长度为5、每个元素长度为20的字符串数组。我们可以通过下标访问每个字符串:

printf("%s\n", names[0]);  // 输出 "Alice"
printf("%s\n", names[1]);  // 输出 "Bob"
注意事项
  • 字符串数组中的每个元素必须以空字符结尾;
  • 字符串数组的元素可以使用 strcpy() 函数来赋值;
  • 使用 strlen() 函数时,要注意字符串的长度不包括末尾的空字符。
总结

C中的字符串和字符串数组是非常常用的类型。掌握字符串的基本操作,有助于编写更加高效的C程序。