一个C++问题!关于统计字符的。

来源:百度知道 编辑:UC知道 时间:2024/06/19 19:13:20
//输入三行字符,每行10个,统计其中大写字母、小字字母、数字、空格及其它字符的个数,这个是我做的,用了数组指针,虽然没有错误,但是不能得到想要的结果,是怎么回事?(好象不能接收空格)还有一点不太明白,就是在c++还有c中是输入字符时,程序是怎么接收的。愿高手指点,不盛感激!
#include "iostream.h"
void main()
{
char x[3][10];
int i,j,m,n;
char *px[3];
int bigletter=0,smallletter=0,number=0,space=0,other=0;
px[0]=x[0];
px[1]=x[1];
px[2]=x[2];
for(i=0;i<3;i++)
{cout<<"请输入第"<<i+1<<"行数字(每行10个)"<<endl;
for(j=0;j<10;j++)
{cin>>*(px[i]+j);
}
}

for(m=0;m<3;m++)
{
for(n=0;n<10;n++)
{
if((*(px[m]+n)>=65)&&(*(px[m]+n)<=90)) bigletter++;
else if((*(px[m]+n)>=65)&&(*(px[m]+n)<=122)) smallletter++;
else if((*(px[m]+n)>=0)&&(*(px[m]+n)<=9)) number++;
else if(*(px[m]+n)=' ') space++;
else other++;
}
}

cout<<"大写字母有: "<<bigletter<<endl; <

cin按输入变量的书写顺序从输入设备(键盘)上 提取所需要的数据,并存入对应的变量.两数据 之间用间隔符(空格,回车或Tab键)分隔,并在 输入过程中抛弃间隔符.

你可以用cin.getline()一次读如一行字符。