指出一c++程序问题(必须用动态数组)

来源:百度知道 编辑:UC知道 时间:2024/06/22 17:23:01
#include<iostream.h>
#include<cstring>
int main()
{
int n,a=0,b=0,c=0,d=0,e=0,i;
cout<<"请输入n的值:";
cin>>n;
char*s=new char[n+1];
if(s==0||n<=0)
{
cout<<"错误!"<<endl;
return -1;
}
cout<<"请输入一行字符:";
cin.get(s,n);
cout<<"该字符串字符的个数为"<<strlen(s)<<endl;
while((*s)!='\0')
{
if((*s>='A')&&(*s<='Z'))
a++;
else if((*s>='a')&&(*s<='z'))
b++;
else if((*s>='0')&&(*s<='9'))
c++;
else if(*s==' ')
d++;
else
e++;
s++;
}
cout<<"大些字母个数为"<<a<<endl;
cout<<"小写字母个数为"<<b<<endl;
cout<<"数字字符个数为"<<c<<endl;
cout<<"空格字符个素为"<&

修改如下:

//---------------------------------------------------------------------------

#include<iostream.h>
#include<cstring>
int main()
{
int n,a=0,b=0,c=0,d=0,e=0,i;
cout<<"请输入n的值:";
cin>>n;
cin.ignore(1024,'\n'); /************注意这里*************/
char*s=new char[n+1];
if(s==0||n<=0)
{
cout<<"错误!"<<endl;
return -1;
}
cout<<"请输入一行字符:";
cin.get(s,n);
cout<<"该字符串字符的个数为"<<strlen(s)<<endl;
while((*s)!='\0')
{
if((*s>='A')&&(*s<='Z'))
a++;
else if((*s>='a')&&(*s<='z'))
b++;
else if((*s>='0')&&(*s<='9'))
c++;
else if(*s==' ')
d++;
else
e++;
s++;
}
cout<<"大些字母个数为"<<a<<endl;
cout<