加:
#include <cstdio>
#include <cstring>
using namespace std;
char c1[505],c2[505];
int a[505],b[505],c[505];
int max(int a,int b){return a>b?a:b;}
int main(){
    scanf("%s",c1);scanf("%s",c2);//printf("%s %s",c1,c2);
    if(c1[0]==48&&c2[0]==48){printf("0");return 0;}
    int len1=strlen(c1);int len2=strlen(c2);
    for(int i=0;i<len1;i++)a[len1-i-1]=int(c1[i]-48);
    for(int i=0;i<len2;i++)b[len2-i-1]=int(c2[i]-48);
    //printf("%d %d",a[0],b[0]);
    int maxx=max(len1,len2);
    for(int i=0;i<maxx;i++){
        c[i]+=a[i]+b[i];
        while(c[i]>=10){c[i+1]++;c[i]-=10;}
    }
    maxx++;
    while(c[maxx]==0)maxx--;
    for(int i=maxx;i>=0;i--)printf("%d",c[i]);
    return 0;
}

减:
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;

string a,b,c;
int d[10005];
bool pd,ling=1;
int main(){
    cin >> a >> b;
    int lena = a.length();
    int lenb = b.length();
    if(a==b){printf("0");return 0;}
    if(lena>lenb)pd=1;
    else if(lena<lenb)pd=0;
    else {
        if(a>b)pd=1;
        else pd=0;
    }
    if(!pd)swap(a,b);
    int m=a.length()-b.length();
    for(int i=1;i<=m;i++)c=c+"0";
    b=c+b;
    for(int i=a.length()-1;i>=0;i--){
        if(a[i]>=b[i])d[i]=a[i]-b[i];
        else{
            a[i-1]--;
            d[i]=a[i]+10-b[i];
        }
    }
    if(!pd)printf("-");
    
    for(int i=0;i<=a.length()-1;i++){
        if(ling && d[i]==0)continue;
        else if(d[i]>0)ling=0;
        printf("%d",d[i]);
    }
    return 0;
}

乘:
#include <cstdio>
#include <cstring>
using namespace std;
int a[2005],b[2005],c[4005];
char s1[2005],s2[2005];
int main(){
   scanf("%s%s",s1,s2);
   a[0]=strlen(s1);b[0]=strlen(s2);
   for(int i=1;i<=a[0];i++)a[i]=s1[a[0]-i]-48;
   for(int i=1;i<=b[0];i++)b[i]=s2[b[0]-i]-48;
   c[0]=a[0]+b[0]-1;
   for(int i=1;i<=b[0];i++)
    for(int j=1;j<=a[0];j++){
            c[i+j-1]+=a[j]*b[i];
            c[i+j]+=c[i+j-1]/10;
            c[i+j-1]%=10;
        }
    
    if(c[c[0]+1]>0)c[0]++;
    while(c[c[0]]==0&&c[0]>1)c[0]--;
    for(int i=c[0];i>=1;i--)printf("%d",c[i]);
    return 0;
}