关于c++的字符转换

2个变量
int a = 10;
int b = 16;
我想把ab两个整型转化为十六进制,并且变成字符串且补齐0到四位,如10变成字符串000A,16变成0010

然后当字符串string c ="000A",我该如何再把它转化为整型10,查过好多资料的实在能力有限。

同学你好,你可以参考我的c改一改:

#include <stdio.h>
int const N = 4;
// 16进制转十进制 
int hex2dec(char a[N]){
    int i, s;
    int q[N];
    // 对应关系
    for(i=0; i<N; i++){
        if(a[i]<='9' && a[i]>='0')q[i]=a[i]-'0';
        else if(a[i]<='F' && a[i]>='A') q[i]=a[i]-'A'+10;
        else printf("Invalid hex input ! \n");
    } 
   //下面这里是关键,也就是多项式求和的快捷方法
    s = q[0];
    for(i=1;i<N;i++){
        s*=16;
        s+=q[i];
    }
    return s;
}
void main(){
    char a[N];
    scanf("%s",a);
    printf("%d",hex2dec(a));
}