you are viewing a single comment's thread
view the rest of the comments
[–] 9 points 11 months ago
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>

char* addStrings(char* as, char*bs){
        int aL=strlen(as);
        int bL=strlen(bs);
        if (aL<bL){
                char* temp=bs;
                int tL=bL;
                bs=as;
                bL=aL;
                as=temp;
                aL=tL;
        }
        char* cs = malloc(aL+2);
        cs[aL+1]='\0';
        bool carry = false;
        int bi=bL-1;
        for(int ai=aL-1; ai>=0; ai--,bi--){
                char a=as[ai];
                char b='0';
                if(bi>=0)b=bs[bi];
                char c=a+b-'0';
                if(carry)c++;
                carry=c>'9';
                if(carry)c-=10;
                cs[ai+1]=c;
        }
        if(carry) cs[0]='1';
        else cs[0]='0';
        return cs;
}

int main(int argc, char**args){
        printf("%s + %s = %s\n", args[1] , args[2] , addStrings(args[1] , args[2]));
}
  • source
  • parent