2 chenyonken chenyonken 于 2016.01.31 21:13 提问

如何将两个字符数组里的数字相加得出两组数的和

char a[1000],b[1000]
两个数组里都是数字

1个回答

caozhy
caozhy   Ds   Rxr 2016.01.31 21:16
已采纳
 void Add(char a[],char b[],char d[])
{
    char c[10001];
    int lena=strlen(a),lenb=strlen(b);
    int i,j,len;
    len=lena>lenb?lena:lenb;
    len++;
    c[0]='\0';
    for(i=1;i<=len;i++)c[i]='0';
    for(i=1;i<=lena;i++)c[i]+=a[lena-i]-48;
    for(i=1;i<=lenb;i++)c[i]+=b[lenb-i]-48;
    for(i=0;i<=len;i++)
        if(c[i]>57)
    {
            c[i]-=10;
            c[i+1]++;
        }

    for(i=len;i>1;i--)
        if(c[i]==48)len--;
        else break;
     for(i=0;i<=len;i++)
        d[i]=c[len-i];
}

char c[120];
Add(a,b,c);
printf("%s", c);
caozhy
caozhy 回复2278091010: 不是 c[i]+,是c[i]+=a[lena-i]-48;,也就是c[i]=c[i] + a[lena-i]-48;
接近 2 年之前 回复
chenyonken
chenyonken c[i]+又是什么意思啊
接近 2 年之前 回复
caozhy
caozhy 回复2278091010: 48是ascii '0'的值,这一步把字符转换为数字
接近 2 年之前 回复
chenyonken
chenyonken for(i=1;i<=lena;i++)c[i]+=a[lena-i]-48; for(i=1;i<=lenb;i++)c[i]+=b[lenb-i]-48;
接近 2 年之前 回复
chenyonken
chenyonken 我想请问下这个是什么意思
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!