统计输入字符串的数字,字母和其它字符的个数,用C++形式做,各位高手可以帮我看看如下的有什么错

#include <iostream.h>
#include<string.h>
void s(char a[7][4]);
void main()
{
char a[7][4]
int i,j,zm;
sz=kg=qt=number=0;
s(a);
for(i=0;i<7;i++)
for(j=0;j<4;j++)
{
if(a[i]>='a'&& a[i]<='z'||a[i]>='A'&&a[i]<='Z')
zm++;
else if(a[i]>='0'&&a[i]<='9')
sz++;
else if(a[i]==32)
kg++;
else
qt++;
}
cout<<"这个字符串中有字母:"<<zm<<"个"<<endl;
cout<<"这个字符串中有数字:"<<sz<<"个"<<endl;
cout<<"这个字符串中有空格:"<<kg<<"个"<<endl;
cout<<"这个字符串中有其它:"<<qt<<"个"<<endl;
}
void s(char a[7][4])
{
int i,j;
cout<<"请输入字符串:"<<endl;
for (i=0;i<7;i++)
for(j=0;j<4;j++)
cin>>a[i][j];
}

自己看吧, 就是除了错,格式上还差得远,要注意代码风格, 还有变量初始化
#include <iostream>
using namespace std;
#include<string.h>
void s(char a[7][4]);
void main()
{
char a[7][4];
int i,j;
int zm, sz, kg, qt, number;
sz=kg=qt=number=0;
s(a);
for(i=0;i<7;i++)
for(j=0;j<4;j++)
{
if(a[i][j]>='a'&& a[i][j]<='z'||a[i][j]>='A'&&a[i][j]<='Z')
zm++;
else if(a[i][j]>='0'&&a[i][j]<='9')
sz++;
else if(a[i][j]==32)
kg++;
else
qt++;
}
cout<<"这个字符串中有字母:"<<zm<<"个"<<endl;
cout<<"这个字符串中有数字:"<<sz<<"个"<<endl;
cout<<"这个字符串中有空格:"<<kg<<"个"<<endl;
cout<<"这个字符串中有其它:"<<qt<<"个"<<endl;
}
void s(char a[7][4])
{
int i,j;
cout<<"请输入字符串:"<<endl;
for (i=0;i<7;i++)
for(j=0;j<4;j++)
cin>>a[i][j];
}追问

调试好了 谢谢

追答

cin 不能这么用的,遇到空格,就结束了
之前只是看你的编译错误了
如果要结果的话,你要修改一下代码
void s(char a[7][4])
{
int i,j;
cout>a[i][j];
a[i][j] = getchar();
}
}
用getchar() 注意结果只是最前28个字符的统计

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-06
要注意你的变量的声明, sz=kg=qt=number=0;这句的前面加上int,头文件#include <iostream.h>在vc里面可以这么写,但是在vs2010里面就不可以这么写,你要写成#include <iostream>
using namespace std;所以标准的你还是写成后者这样的,
相似回答