c++ while(*str++)循环问题!

#include<iostream>usingspacenamestd;constinta=10;intmain(){charinput[a];cout<<"entera... #include <iostream>
using spacename std;
const int a=10;
int main()
{
char input[a];
cout<<"enter a string: ";
cin.get(input,a); //如果在这里输入的是 "nice pant"
cont char* str=input;
int count=0 ;
while(*str++)
count++;
cout<<count;
return 0;
}

最后输出的count是9.
我想知道的是str[8]的值是t,再++后的值是str[9]=='\0'(也就是0)应该判定为假,会跳过count++的(也就是说count的值为8)。
在VS2010中测试的!
谁知道的说下,也需我有个小知识点忘了。在下初学者,别鄙视请解惑!
我知道了,想到了。while(*str++)第一次判定的时候下标为str[0]为真,count+1.第二次判定的时候下标为str[1]为真,count+1==2,所以到str[8]的时候count==9.

唉,太大意了,这么笨的问题想了这么久!
展开
 我来答
匿名用户
2012-03-10
展开全部
空格,你遗忘了?你用的是cin.get(input, a);会读取空格。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zsh506125
2012-03-10 · TA获得超过120个赞
知道答主
回答量:72
采纳率:0%
帮助的人:63.3万
展开全部
str[8]时count==9,
str[9]时count==10,
……
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式