c++这个问题怎么改

img

int i;
char a[20];
char b[20];
gets(a);
gets(b);
int lena=strlen(a);
int lenb=strlen(b);
int lenc=lena+lenb;
int num=0;
if(lena>=lenb)
{
    strcat(a,b);
    
    for(int i=0;i<lenc-1;i++)
    {
        if(i%2==0)
        {
            num++;
            printf("%c%d",a[i],num);
            
        }
    }
    printf("%c",b[lenb-1]);

}
if(lena<lenb)
{
    strcat(b,a);

    for(int i=0;i<lenc-1;i++)
    {
        if(i%2==0)
        {
            num++;
            printf("%c%d",b[i],num);
        }
    }
    printf("%c",a[lena-1]);
}
 

a,b可接受的字符串长度太小,把数组容量变大,比如a[1024],b[1024]