C++程序中的错误——下面的代码错在哪里,是什么原因的错误,求高手指教!

给定程序中,函数fun的功能是:将s所指字符串中的所有数字字符移到所有非数字字符之后,并保持数字字符串和非数字字符串原有的先后次序。例如,形参s所指的字符串为:def35... 给定程序中,函数fun的功能是: 将s所指字符串中的所有数字字符移到所有非数字字符之后,
并保持数字字符串和非数字字符串原有的先后次序。
例如,形参s所指的字符串为:def35adh3kjsdf7。执行结果为:defadhkjsdf3537。
#include<iostream>
using namespace std;
class character
{
private:
char a[1000];
char b[1000];//存储数字
char c[1000];//存储非数字的字符
char *p;
int m,n,sum;
public:
character();
void input();
void fun();
void display();
~character(){};

};
character::character()
{
a[1000]={'0'};b1000]={'0'};
c [1000]={'0'};
*p=NULL;
m=0;
n=0;
sum=0;
}
void character::input()
{
cout<<"请输入字符串:"<<endl;
gets(a);
}
void character::fun()
{
p=a;
while(*p!='\0')
p++;
sum=p-a;
for(int i=0;i<sum;i++)
{
if(a[i]>='0'&&a[i]<='9')
{
b[m]=a[i];
m++;
}
else
{
c[n]=a[i];
n++;
}
}
}
void character::display()
{
cout<<"处理后的结果为:"<<endl;
for(int i=0;i<n;i++)
cout<<c[i];
for(int j=0;j<m;j++)
cout<<b[j];
cout<<endl;
}
void main()
{
character a;
a.input();
a.fun();
a.display();
}
展开
 我来答
汪好帅
2011-11-06 · TA获得超过2830个赞
知道大有可为答主
回答量:1177
采纳率:0%
帮助的人:1448万
展开全部
a[1000]={'0'};b1000]={'0'};
c [1000]={'0'};
数组不支持这样初始化
可以 memset(a,0,sizeof(a));

还有*p = NULL; //改成 p=NULL;只要地址用NULL 其值没有NULL表示,
追问
除了那还有其他问题啊,改了后还是有问题,这时怎么回事啊??
追答
char a[1000]={'0'};  //数组可以这样在声明的时候初始化赋值
*p = NULL; //改成 p=NULL;
还有问题嘛?!
dwjchdu
2011-11-06 · TA获得超过5915个赞
知道大有可为答主
回答量:4576
采纳率:60%
帮助的人:1172万
展开全部
a[1000]={'0'};b1000]={'0'};
c [1000]={'0'};
-----------------------------------
a[1000]={'0'};b[1000]={'0'};
c[1000]={'0'};
追问
除了那还有其他问题啊,改了后还是有问题,这时怎么回事啊??
追答
把错误提示发上来吧!
不然看的太辛苦了!@
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式