C 多维数组、特殊字符和字符串函数详解

打印 上一主题 下一主题

主题 876|帖子 876|积分 2628

C 多维数组

数组,也称为单维数组。这些非常棒,是您在 C 语言编程中会经常使用的东西。然而,如果您想要将数据存储为表格形式,例如带有行和列的表格,则需要熟悉多维数组。
二维数组

二维数组也称为矩阵,具有行和列的结构。
  1. int matrix[2][3] = { {1, 4, 2}, {3, 6, 8} };
复制代码
第一个维度表示行数 [2],而第二个维度表示列数 [3]。
访问二维数组的元素

要访问二维数组的元素,您必须指定行和列的索引号。
  1. printf("%d", matrix[0][2]);  // 输出 2
复制代码
更改二维数组中的元素

要更改元素的值,请参考每个维度的元素索引号:
  1. matrix[0][0] = 9;
复制代码
循环遍历二维数组

要循环遍历多维数组,您需要为数组的每个维度设置一个循环。
  1. for (int i = 0; i < 2; i++) {
  2.   for (int j = 0; j < 3; j++) {
  3.     printf("%d\n", matrix[i][j]);
  4.   }
  5. }
复制代码
C 语言中的特殊字符

字符串必须用引号括起来,因此 C 语言会误解以下字符串并生成错误:
  1. char txt[] = "We are the so-called "Vikings" from the north.";
复制代码
为了避免这个问题,可以使用转义字符反斜杠 (\)。
转义字符反斜杠会将特殊字符转换为字符串字符:

  • \':单引号
  • \":双引号
  • \\:反斜杠
  • \n:换行符
  • \t:制表符
  • \0:空字符
以下示例演示了如何使用转义字符:
  1. char txt[] = "We are the so-called "Vikings" from the north."; // 使用转义字符插入双引号
复制代码
  1. char txt[] = "It\'s alright."; // 使用转义字符插入单引号
复制代码
  1. char txt[] = "The character \\ is called backslash."; // 使用转义字符插入反斜杠
复制代码
其他常用的 C 语言转义字符包括:

  • \n:换行符,将光标移动到下一行
  • \t:制表符,将光标移动到下一个制表位
  • \0:空字符,字符串的结束符
C 语言中的字符串函数

C 语言也提供了许多有用的字符串函数,可以用来对字符串进行一些操作。
要使用这些函数,您必须在程序中包含  头文件:
  1. #include <string.h>
复制代码
获取字符串长度

例如,要获取字符串的长度,可以使用 strlen() 函数:
  1. char alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  2. printf("%d", strlen(alphabet)); // 输出 26
复制代码
我们使用 sizeof 来获取字符串/数组的大小。请注意,sizeof 和 strlen 的行为不同,因为 sizeof 在计数时也包括 \0 字符:
  1. char alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  2. printf("%d", strlen(alphabet)); // 26
  3. printf("%d", sizeof(alphabet)); // 27
复制代码
您应该知道 sizeof 始终返回内存大小(以字节为单位),而不是实际的字符串长度:
  1. char alphabet[50] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  2. printf("%d", strlen(alphabet)); // 26
  3. printf("%d", sizeof(alphabet)); // 50
复制代码
连接字符串

要连接(合并)两个字符串,可以使用 strcat() 函数:
  1. char str1[20] = "Hello ";
  2. char str2[] = "World!";
  3. // 连接 str2 到 str1(结果存储在 str1 中)
  4. strcat(str1, str2);
  5. // 打印 str1
  6. printf("%s", str1); // 输出 Hello World!
复制代码
请注意,str1 的大小应该足够大,可以存储组合后的两个字符串(在本例中为 20)。
复制字符串

要将一个字符串的值复制到另一个字符串,可以使用 strcpy() 函数:
  1. char str1[20] = "Hello World!";
  2. char str2[20];
  3. // 将 str1 复制到 str2
  4. strcpy(str2, str1);
  5. // 打印 str2
  6. printf("%s", str2); // 输出 Hello World!
复制代码
请注意,str2 的大小应该足够大,可以存储复制的字符串(在本例中为 20)。
比较字符串

要比较两个字符串,可以使用 strcmp() 函数。
如果两个字符串相等,则返回 0,否则返回一个不为 0 的值:
  1. char str1[] = "Hello";
  2. char str2[] = "Hello";
  3. char str3[] = "Hi";
  4. // 比较 str1 和 str2,并打印结果
  5. printf("%d\n", strcmp(str1, str2)); // 返回 0(字符串相等)
  6. // 比较 str1 和 str3,并打印结果
  7. printf("%d\n", strcmp(str1, str3)); // 返回 -4(字符串不相等)
复制代码
最后

为了方便其他设备和平台的小伙伴观看往期文章:
微信公众号搜索:Let us Coding,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎 点赞、收藏、关注

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

耶耶耶耶耶

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表