字符串复制错误,帮忙看下
题是这样的~输入一串长整数 例如12345678 为了表示清楚记为:12,345,687 如123则输出123#include <iostream>
using namespace std;
int count=0;
int num_len(int num)
{
int len=0;
while (num!=0)
{
num/=10;
++len;
if (len%3==0)
{
++count;
}
}
return len; //输入数字的位数
}
void main()
{
int num,len,flag;
cin>>num;
len=num_len(num);
if (len>3)
{
int size_char=len+count,sign=0,flag;
bool first=true;
flag=len%3; //标记第一次出现,的位置
char *a=new char[len+1];
char *b=new char[size_char+1];
itoa(num,a,10);
a[len]=0;
b[size_char]=0;
int i=0,j=0;
while (a[i]!=EOF)
{
sign%=3;
if (j==flag&&first)
{
b[j]=',';
first=false;
sign=0;
continue;
}
if (sign==0)
{
b[j]=',';
}
else
{
b[j]=a[i];
++i;
}
++j;
++sign;
}
cout<<b<<endl;
}
else
{
cout<<num<<endl;
}
}
试了好长时间都没发现是哪里写错了~出现内存错误 细心的朋友帮我看看 谢谢~