为什么for循环第一个条件置空就会有错
#include<iostream>
using namespace std;
void chengfa(char* a,char* b){
int fuhao1,fuhao2;
char c[1000];
if(a[0]=='-'||a[0]=='+'){ //判断符号
if(a[0]=='-')fuhao1=-1;
else fuhao1=1;
strcpy(c,a+1);
strcpy(a,c);
}
if(b[0]=='-'||b[0]=='+'){//判断符号
if(b[0]=='-')fuhao2=-1;
else fuhao2=1;
strcpy(c,b+1);
strcpy(b,c);
}
int i=0;
int j=0;
for(i=0;i<1000;i++)//初始化C
c[i]='0';
i=strlen(a)-1;
j=strlen(b)-1;//获得长度
int lena=strlen(a);
int lenb=strlen(b);
for(i=lena-1;i>=0;i--){//就是去掉i=lena-1,j=lenb-1
int k=0;
for(j=lenb-1;j>=0;j--){
char l=c[i+j+1];
c[i+j+1]=(c[i+j+1]-'0'+(a[i]-'0')*(b[j]-'0')+k)%10+'0';
k=(l-'0'+(a[i]-'0')*(b[j]-'0')+k)/10;
}
if(k!=0)c[i]+=k;
}
i=0;
j=0;
while(c[i]=='0')i++;
while(i<=lena+lenb-1)
a[j++]=c[i++];
a[j] = '\0';//字符串以'\0'结尾
if(a[0] == '\0') a[0] = '0',a[1] = '\0';//如果只有空字符输出0
if(fuhao1*fuhao2 == -1 && a[0] !='0') {
strcpy(c,a);
a[0] = '-';
a[1] = '\0';
strcat(a,c);///连接字符串
}
}
void main(){
char a[1000];
char b[1000];
scanf("%s",&a);
scanf("%s",&b);
chengfa(a,b);
printf("%s",a);
}