当前位置:网站首页>C语言中打印字符数组出现乱码的问题(烫烫烫)
C语言中打印字符数组出现乱码的问题(烫烫烫)
2022-08-03 05:25:00 【EurekaO-O】
打印字符数组时出现类似下图这样的乱码:

原因:字符串的结束标志是一个 \0 的转义字符。在计算字符串长度的时候 \0 是结束标志,不算作字符串数据,也不影响字符串的长度。当一个字符串没有结束语时就会一直打印,直到内存中的数据出现 \0 ,如果是一个个字符元素则需要手动在最后一个元素的位置添加\0,当然也不会影响数组长度/字符串长度/内容

可以看到这里并没有加上结束标志,输出结果也就是abc乱码了。
解决方法:在下个元素的位置加上\0即可(就像arr3那样),注意即使加上了\0也不会影响整个字符数组的长度,更不会影响内容。
证明\0是结束标志且不会影响字符数组长度/内容的两种方法:
第一种:可以用监视窗口证明字符数组最后一位是\0,不会影响内容,且还是字符串的结束标志
1.F10-选择逐步步入或使用快捷键:F11。当创建完数组后即可进行下一步,不然会出现 无法读取到内存。
2.调试-窗口-监视或使用快捷键Ctrl+Alt+W,1,在监视窗口中添加数组名即可看到数组中的数据,如下图

通过对比arr1和arr2可以看出来,如果用字符串自动拥有结束标志,字符数组则没有,长度也可以看到arr2是“abc...”,证明arr2中除“abc”外还有其他数据,下面是打印结果:

可以看到虽然字符串arr1有\0但并不影响输出内容。
第二种:可以利用 strlen() 函数证明,并不影响字符串长度
strlen():用于返回字符串长度,需要引入string.h头文件
首先使用strlen() 函数需要引入string.h 头文件,如下图
从输出结果不难看出,虽然arr3自动多了一个结束标志,但并不影响字符串长度。而arr2是不确定的数,它的长度取决于你内存中什么时候出现结束标志。
关于C语言中打印字符数组出现乱码的问题就结束了。
第一次学C语言如果有不好的地方请留在评论区或私信我也可以,以后有空的话也会经常发博客。谢谢支持!~
边栏推荐
- 【第三周】ResNet+ResNeXt
- 【第一周】深度学习和pytorch基础
- 9. Please introduce the class loading process, what is the parent delegation model?
- VS2022 encapsulation under Windows dynamic library and dynamic library calls
- VS2022 encapsulates static libraries and calls static libraries under window
- VSCODE 常见问题
- 数组与字符串12-数组拆分
- ARMv8 架构----armv8 类别
- cmdline -[command line,__fdt_pointer,initial_boot_params] boot_command_line 获取
- KASLR-内核地址空间布局随机化
猜你喜欢

使用JSP实现简单的登录注册功能,并且使用Session跟踪用户登录信息

自监督论文阅读笔记 S3Net:Self-supervised Self-ensembling Network for Semi-supervised RGB-D Salient Object Det

二分查找6 - 寻找峰值

ZEMAX | 如何围绕空间中的任何点旋转任何元素

损失函数(第五周)

【第一周】深度学习和pytorch基础

IPC通信 - 管道

【第四周】MobileNet和HybridSN
MMU 介绍-[TBL/page table work]

自监督论文阅读笔记 DetCo: Unsupervised Contrastive Learning for Object Detection
随机推荐
自监督论文阅读笔记 SimCLRV2 Big Self-Supervised Models are Strong Semi-Supervised Learners
自监督论文阅读笔记 DenseCL:Dense Contrastive Learning for Self-Supervised Visual Pre-Training
Difference between @JsonProperty and JSONField?
自监督论文阅读笔记 Self-supervised Label Augmentation via Input Transformations
二、Exception和Error有什么区别?
pandoc -crossref插件实现markdwon文档转word后公式编号自定义
自监督论文阅读笔记 Self-Supervised Visual Representation Learning with Semantic Grouping
数组与字符串15-最大连续1的个数
观看华为AI技术领域课程--深度学习前三章总结
建立平衡二叉树简单demo
数组与字符串14-使用双指针移除元素
深度学习基本概念
002_旭日X3派初探:TogetherROS安装
Automatic ticket issuance based on direct reduction of China Southern Airlines app
稳压二极管的工作原理及稳压二极管使用电路图
六、对比Vector、ArrayList、LinkedList有何区别?(设计、性能、安全)
ZEMAX | 如何倾斜和偏心序列光学元件
电子元器件之电子变压器可分为哪几类?
003_旭日X3派初探:利用无线串口通信控制舵机
SolidWorks 操作视频 | 流体分析结果演示