首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

(急)问个特别奇怪的关于输入的有关问题

2012-04-11 
(急)问个特别奇怪的关于输入的问题以下为源代码:intmain(){charstr[3]{}cout len strlen(str

(急)问个特别奇怪的关于输入的问题
以下为源代码:
int   main()
{
          char   str[3]={};
          cout < < "len= " < <strlen(str) < <endl;
          for(int   i=0;i <3;i++)
          {
          cin> > str[i];                        
          }
          cout < < "len= " < <strlen(str) < <endl;
          if(strlen(str)> 5)
          {
                  cout < < "ERR! " < <endl;
          }
          cout < < "outside " < <endl;
          getch();
}

结果是
len=0
zxj
len=15
ERR!
outside

问为什么长度为15,这样造成条件语句总是成立

[解决办法]
strlen(str)
---
strlen的参数一个包含结束符的字符串
你的字符数组只存了三个字符,并没有结束符。
所以strlen(str)是不确定的

热点排行