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

  • Post author:
  • Post category:其他



【环境】:

Windows,Dev-C++ 5.9.2

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

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

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

下面是运行截图:

有大佬知道为什么吗?

#include <iostream>
#include <cstring>
using namespace std;

int main()
{
	char ch[4]; //定义一个长度为4的字符数组 
	int length; //定义一个整数 

	gets(ch);   //输入字符串,当输入的字符串长度达到4时,后面的两行输出竟然不同, 
	
	cout << "字符串长度为:" << strlen(ch) << ",字符串为:" << ch << endl;
	
	//就是这句话,多了这句话以后,前后两次输出竟然不同 
	length=strlen(ch);

	//此时字符串长度多了一位 
	cout << "字符串长度为:" << strlen(ch) << ",字符串为:" << ch;

	return 0;
}



版权声明:本文为u013313909原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。