c语言——| 字符串及字符数组的相关易错内容

简介: 字符串及字符数组的相关易错内容

 一、"\0"对字符串与字符数组的重要性

image.gif编辑

代码结果运行如下:

image.gif编辑

其中数组arr1 与数组arr3的打印结果正确,而arr2的打印结果出现了异常。这就是使用"\0"造成的差异。我们知道"\0"是字符串的结束标志,当遇到\0时字符串才算作结束。在计算字符串的长度时"\0"不算作字符串的内容。

本题中数组arr1为字符串其本身末尾隐藏着一个\0;而在数组arr3中由我手动添加了一个\0,使得代码能够在遇到\0时自动结束,而arr2数组由于没有\0,打印时计算机找不到尾,只能打印出一个随机值,当在内存中”偶遇“一个”\0“时它才停止。


二、strlen与sizeof有什么区别?

结论:事实上二者没有什么关联

总结如下:

1、strlen是一个包含在string.h的字符串库函数,用于求字符串长度(也只能对字符串求长度)。它计算的是”\0“之前的所有字符的个数。(不包括"\0")

2、sizeof是一个操作符,它计算变量、数组类型的大小,单位是字节byte.

image.gif编辑

结果如下:

image.gif编辑

注意:

虽然‘\0'在库函数中不算数,但它实际存在且占了空间。因而在计算所占空间sizeof时,必须把“\0”,

作为一个字符元素参与其中。


三、含转义字符、求字符串长度

引例:

如果要在屏幕上打印一个目录:c:\code\test.c

如果我们这样写代码

#include<stdio.h>
int main()
{
   printf(“c:\code\test.c\”);
   return 0;
}

image.gif

结果如下:

image.gif编辑

原因很简单:\t作为转义字符,表示“水平制表符”,不在是字面意义的表示


总结:

介绍了字符串与数组中最易出错的三个考点。


相关文章
|
22天前
|
存储 算法 C语言
【C语言】字符常量详解
字符常量是C语言中处理字符数据的重要工具。通过单引号括起一个字符,我们可以方便地使用字符常量进行字符判断、字符运算和字符串处理等操作。理解字符常量的表示方法、使用场景和ASCII码对应关系,对于编写高效的C语言程序至关重要。
90 11
|
22天前
|
存储 C语言 开发者
【C语言】字符串操作函数详解
这些字符串操作函数在C语言中提供了强大的功能,帮助开发者有效地处理字符串数据。通过对每个函数的详细讲解、示例代码和表格说明,可以更好地理解如何使用这些函数进行各种字符串操作。如果在实际编程中遇到特定的字符串处理需求,可以参考这些函数和示例,灵活运用。
44 10
|
22天前
|
存储 C语言 开发者
【C语言】格式化输出占位符及其标志字符详解(基于ISO/IEC 9899:2024)
在C语言中,格式化输出通过 `printf` 函数等格式化输出函数来实现。格式说明符(占位符)定义了数据的输出方式,标准ISO/IEC 9899:2024(C23)对这些格式说明符进行了详细规定。本文将详细讲解格式说明符的组成部分,包括标志字符、宽度、精度、长度修饰符和类型字符,并适当增加表格说明。
39 6
|
22天前
|
传感器 算法 安全
【C语言】两个数组比较详解
比较两个数组在C语言中有多种实现方法,选择合适的方法取决于具体的应用场景和性能要求。从逐元素比较到使用`memcmp`函数,再到指针优化,每种方法都有其优点和适用范围。在嵌入式系统中,考虑性能和资源限制尤为重要。通过合理选择和优化,可以有效提高程序的运行效率和可靠性。
70 6
|
26天前
|
存储 缓存 算法
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式,强调了合理选择数据结构的重要性,并通过案例分析展示了其在实际项目中的应用,旨在帮助读者提升编程能力。
49 5
|
26天前
|
存储 算法 C语言
C语言中常见的字符串处理技巧,包括字符串的定义、初始化、输入输出、长度计算、比较、查找与替换、拼接、截取、转换、遍历及注意事项
本文深入探讨了C语言中常见的字符串处理技巧,包括字符串的定义、初始化、输入输出、长度计算、比较、查找与替换、拼接、截取、转换、遍历及注意事项,并通过案例分析展示了实际应用,旨在帮助读者提高编程效率和代码质量。
75 4
|
26天前
|
存储 程序员 编译器
C 语言数组与指针的深度剖析与应用
在C语言中,数组与指针是核心概念,二者既独立又紧密相连。数组是在连续内存中存储相同类型数据的结构,而指针则存储内存地址,二者结合可在数据处理、函数传参等方面发挥巨大作用。掌握它们的特性和关系,对于优化程序性能、灵活处理数据结构至关重要。
|
1月前
|
存储 C语言 计算机视觉
在C语言中指针数组和数组指针在动态内存分配中的应用
在C语言中,指针数组和数组指针均可用于动态内存分配。指针数组是数组的每个元素都是指针,可用于指向多个动态分配的内存块;数组指针则指向一个数组,可动态分配和管理大型数据结构。两者结合使用,灵活高效地管理内存。
|
1月前
|
存储 NoSQL 编译器
C 语言中指针数组与数组指针的辨析与应用
在C语言中,指针数组和数组指针是两个容易混淆但用途不同的概念。指针数组是一个数组,其元素是指针类型;而数组指针是指向数组的指针。两者在声明、使用及内存布局上各有特点,正确理解它们有助于更高效地编程。
|
22天前
|
存储 程序员 C语言
【C语言】文件操作函数详解
C语言提供了一组标准库函数来处理文件操作,这些函数定义在 `<stdio.h>` 头文件中。文件操作包括文件的打开、读写、关闭以及文件属性的查询等。以下是常用文件操作函数的详细讲解,包括函数原型、参数说明、返回值说明、示例代码和表格汇总。
43 9