【環境】: 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;
}