c++为什么错了

来源:百度知道 编辑:UC知道 时间:2024/06/06 03:20:25
输入一行字符,统计其中大写字母、小写字母、数字、空格和其他字符的个数,要求用字符指针方式访问字符串中的字符。直接在主函数中进行处理,不要求再定义函数。我的程序是
#include <iostream>
using namespace std;
int main()
{
char str[80],m;char *pointer;int i,c,sumA=0,suma=0,sum=0,sumother=0,sum0=0;
for(i=0;(c=getchar())!='\n';i++)
str[i]=c;
pointer=&str[0];
for(i=0;i<80&&(*(pointer+i))!='\0';i++)
m=(*(pointer+i));
if(m>='A'&&m<='Z')
{
sumA++;
else if(m>='a'&&m<='z')
{
suma++;
else if(m=='\032')
{
sum++;
else if(m>='0'&&m<='9')
sum0++;
}}}
cout<<sumA<<suma<<sum0<<sum<<sumother<<endl;
return 0;
}
为什么有错误
那个1楼 你的好像错误是没了不过好像还不怎么符合题意 所以 能不能在说下哪里有错 不过真的十分感谢

在你输入字符串的时候也错了,最好看看这儿
http://zhidao.baidu.com/question/30390464.html?si=4下面是给你改写的,仅供参考,没显式地用到指针,但是内部都是!!!
#include <iostream>
#include<string>
using namespace std;
int main()
{
string str;
char *pointer;
int sumA=0,suma=0,sum=0,sumother=0,sum0=0;

getline(cin,str);
for(int i=0;i<=str.length();i++)

if(str[i]>='A'&&str[i]<='Z')
{
sumA++;
}
else if(str[i]>='a'&&str[i]<='z')
{
suma++; }
else if(str[i]=='\032')
{
sum++; }
else if(str[i]>='0'&&str[i]<='9') {
sum0++;
}
cout<<sumA<<suma<<sum0<<sumother<<endl;

return 0;
}

你的代码中,if/else的配对错了,也就是花括号没配对,
这么改:

#include <iostrea