【环境】: Windows,Dev-C++ 5.9.2

如下代码所示,定义一个长度为4的字符数组,从键盘输入长度为4的字符串

然后调用strlen()函数,将字符串的长度赋值给一个整型变量length

之后诡异的事情就发生了,字符串的长度居然加了一位。

下面是运行截图:

有大佬知道为什么吗?

#include <iostream>
#include <cstring>
using namespace std;int main()
{char ch[4]; //定义一个长度为6的字符数组 int length; //定义一个整数 gets(ch);   //输入字符串,当输入的字符串长度达到4时,后面的两行输出竟然不同, cout << "字符串长度为:" << strlen(ch) << ",字符串为:" << ch << endl;//就是这句话,多了这句话以后,前后两次输出竟然不同 length=strlen(ch);//此时字符串长度多了一位 cout << "字符串长度为:" << strlen(ch) << ",字符串为:" << ch;return 0;
}

Dev-C++下的char字符数组strlen()诡异事件相关推荐

  1. c语言的字符数组strlen的详细使用

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.字符数组中strlen的使用详解 1.字符数组中strlen(arr+0) 2.字符数组中strlen(*arr) ...

  2. char[]字符数组使用toString变为乱码的原因(其实不是乱码,是“类名+@+地址”)

    java 字符数组使用toString变为乱码(其实是地址). 因为String字符串可以通过toCharArray()得到字符数组,所以很多初学者就会想到对字符数组使用toString()的方法得到 ...

  3. 十六进制转字符串或char字符数组

    文章目录 十六进制-字符串互转 十六进制转字符数组 十六进制-字符串互转 HEX-字符互转 https://the-x.cn/encodings/Hex.aspx 注意:必须是可打印字符才能在这里互转 ...

  4. c语言 char 字符数组转成string字符串

    在用 esp32 写智能家居,写mqtt回调函数,处理onenet下发的数据流 byte payload.在拼接成的字符串结尾,总是莫名的出现乱码. 后来经过百度,才明白用char数组表示字符串,结尾 ...

  5. 用字符数组存放和处理字符串

    字符串 字符串是用双引号括起来的字符序列.比如,"China".字符串常量会在字符序列末尾添加'\0'作为结尾标记.字符串在内存中按照串中字符的排列顺序存放,并在末尾会添加'\0' ...

  6. 【C语言】字符数组的定义及使用

    上篇文章讲述了二维数组的相关知识,本文我们接着来讲字符数组,和字符数组里要使用的一些函数,本文所有代码均匹配于VS环境下. 目录 一.前情介绍 二.怎样定义字符数组 三.字符数组的初始化 四.字符串和 ...

  7. c++ string 拼接_C++日志(二十五)字符数组、字符数组指针和string类

    C++中字符串的表示方式有很多种,根据自己目前掌握的有三种: 字符数组: 字符数组指针: 标准库string类: 上面几种方式各有优点和缺点,按照自己的观点,如果处理的字符串的任务比较简单,则使用前两 ...

  8. Java中string字符串和char字符之间的千丝万缕

    目录 前言 String字符串和char字符的区别 拓展 相互转换 String字符串转换成char字符数组 char字符转换成String字符串 char字符数组转换成String字符串 Strin ...

  9. c语言char数组和short数组的区别,详解C语言中Char型指针数组与字符数组的区别

    详解C语言中Char型指针数组与字符数组的区别 详解C语言中Char型指针数组与字符数组的区别 1.char 类型的指针数组:每个元素都指向一个字符串,指向可以改变 char *name[3] = { ...

  10. [cpp] 字符数组,字符指针,sizeof,strlen总结

    对于字符数组与字符指针: 1. 以字符串形式出现的,编译器都会为该字符串自动添加一个0作为结束符,如在代码中写"abc",那么编译器帮你存储的是"abc\0". ...

最新文章

  1. iOS UITextField清空按钮
  2. User Profile Data Web Part 读取属性字段
  3. python3 字典 dict 常见用法总结(判断key是否存在)
  4. 集群介绍 、keepalived介绍 、 用keepalived配置高可用集群
  5. [已经验证通过]xp sp2 不支持WPA协议的解决办法
  6. Spring Boot导出jar包发布
  7. linux qt程序编译出错,QTcreator编译出错
  8. life game c语言,c++生命游戏源码
  9. 智能手机下半场迎来淘汰赛:有的拼供应链,有的打起了 AI 的主意
  10. ARG MIN的含义是什么?
  11. hi3798mv300救砖包_迪优美特V26_hi3798mv300线刷固件升级包纯净系统
  12. 线性表的链式存储结构基本操作代码实现
  13. arcgis公里坐标转经纬度_利用arcgis实现经纬度和平面坐标互转
  14. 干货:IT运维管理规划
  15. 对比MySQL和Pandas计算用户最大连续登录天数
  16. 耐得住寂寞,坐得住板凳,也是一种能力。
  17. IAR EW8051-8.1编译ZStack时,出现警告Warning[Pe069]: integer conversion resulted in truncation的解决办法
  18. 硬核讲解 Jetpack 之 LifeCycle 使用篇
  19. 组合数算法的非递归实现
  20. 优秀成绩标记—— 小王是班级干部,对于即将到来的三好学生评选,负责统计平均成绩超过85分的同学

热门文章

  1. matlab收益率,债券价格与收益率的Matlab实现(10页)-原创力文档
  2. CNZZ异步统计代码
  3. 随机森林在sklearn中的实现
  4. unity3D学习笔记1
  5. AJAX IE7清除缓存
  6. Excel如何动态获取某个产品最新的库存信息
  7. hdu4699 Editor(栈)
  8. CE修改器学习历程之下载、安装和汉化
  9. 移动端webscoket连接失败---code1006
  10. java格林威治时间转换_JAVA 格式化格林威治时间(Wed Aug 01 00:00:00 CST 2012)格式转换...