写了一个字符串(数字)加减的函数,各位看看有BUG吗
//ASC数字串相加:AscStr1=AscStr1+AscStr2 void AscNum_Add(char *AscStr1,char *AscStr2)
{
int i,Len;
char c;
char add_flag=0;
Len=strlen(AscStr1);
if(Len!=strlen(AscStr2)) return;
for(i=Len-1;i>=0;i--)
{
c = (AscStr1&0x0f) + (AscStr2&0x0f);
if(add_flag==1)
{
c=c+0x01;
add_flag=0;
}
if(c>9)
{
c=c-0x0a;
add_flag=1;
}
c=c+0x30;
AscStr1=c;
}
}
//ASC数字串相减:AscStr1=AscStr1-AscStr2
void AscNum_Sub(char *AscStr1,char *AscStr2)
{
int i,Len;
char c1,c2;
char sub_flag=0;
Len=strlen(AscStr1);
if(Len!=strlen(AscStr2)) return;
for(i=Len-1;i>=0;i--)
{
c1 = (AscStr1&0x0f);
if(sub_flag==1)
{
if(c1>0) {c1=c1-0x01; sub_flag=0;}
else if(c1==0) {c1=c1+0x0a-0x01; sub_flag=1;}
}
c2 = (AscStr2&0x0f);
if(c1<c2)
{
c1=c1+0x0a-c2;
sub_flag=1;
}
else
{
c1=c1-c2;
}
c1=c1+0x30;
AscStr1=c1;
}
}