注册 登录
编程论坛 VC++/MFC

本人新手,刚开始学编程,求大神帮忙看看这个程序编译没有错误,只是最后不输出结果

wjffirework 发布于 2015-03-13 22:05, 1037 次点击
#include <iostream>
using namespace std;
int main()
{
    char str[100];
    int i,a=0,b=0,c=0,d=0;
    cout<<"input a string:  ";
    cin>>str;
    while(str[i]!='\0');
    {
        if(str[i]==' ')
        a++;
        else if(str[i]>='a'&&str[i]<='z'||str[i]>='A'&&str[i]<='Z')
        b++;
        else if(str[i]>='0'&&str[i]<='9')
        c++;
        else
        d++;
        i++;
    }
    cout<<"the number of space is"<<a;
    cout<<"the number of letter is"<<b;
    cout<<"the number of figure is"<<c;
    cout<<"the number of else character"<<d;
    return 0;
}
4 回复
#2
wjffirework2015-03-13 22:15
回复 楼主 wjffirework
我要是改为for循环就可以运行
#3
jtl122015-03-18 10:02
回复 2楼 wjffirework
应该是数组并没有被展开,也就是说str[i]一直处于str[0]状态
#4
minkey2015-03-26 21:05
回复 楼主 wjffirework
是不是因为i在定义时未赋值。for循环时有赋值语句,而while没有。可以在while语句前cout <<str[i]。

[ 本帖最后由 minkey 于 2015-3-26 21:10 编辑 ]
#5
大神你懂得2015-04-06 09:01
回复 楼主 wjffirework
在c++中输入的时候你想输入空格的话,不能直接用cin函数,要用cin.getline(str[i],100);
1