去除前导零就可

#include <iostream>
#include <algorithm>
#include <string.h>
#include <vector>
#include <cmath>
typedef long long ll;
using namespace std;
vector<int> add(vector<int>& A, vector<int>& B);
int main() {
    int n;
    char a[5050];
    char b[5050];
    vector<int>A;
    vector<int>B;
    scanf("%d", &n);
    while (n--) {
        memset(a, '\0', sizeof(a));
        memset(b, '\0', sizeof(b));
        A.clear();
        B.clear();
        scanf("%s", a);
        scanf("%s", b);
        for (int i = strlen(a) - 1; i >= 0; i--) {
            A.push_back(a[i]-'0');
        }
        for (int i = strlen(b) - 1; i >= 0; i--) {
            B.push_back(b[i]-'0');
        }
        vector<int>C = add(A, B);
        for (int i = C.size() - 1; i >= 0; i--) {
            printf("%d", C[i]);
        }
        printf("\n");
    }
    return 0;
}
vector<int> add(vector<int>& A, vector<int>& B) {
    int temp = 0;
    vector<int>C;
    while (A.back() == 0) A.pop_back();
    while (B.back() == 0) B.pop_back();
    for (int i = 0; i < A.size() || i < B.size(); i++) {
        if (i < A.size()) temp += A[i];
        if (i < B.size()) temp += B[i];
        C.push_back(temp % 10);
        temp /= 10;
    }
    if (temp) C.push_back(temp);
    return C;
}