C语言 数字翻译成大写汉字 如何实现对整数,零的灵活翻译

就是输入800输出捌佰而不是捌零佰零拾,80001输出捌仟零一。目前这个只能翻译部分情况。不知道该怎么改了

#include
int main()
{
char a[8];
int tempt,count=0;
while(1)
{
scanf("%c",&tempt);
if(tempt=='\n')break;
a[count]=tempt;
count++;
}
int i,count_1=count,m=0;
for(i=0;i<=count_1;i++)
{
switch(a[i])
{
case '1':printf("壹");break;
case '2':printf("贰");break;
case '3':printf("叁");break;
case '4':printf("肆");break;
case '5':printf("伍");break;
case '6':printf("陆");break;
case '7':printf("柒");break;
case '8':printf("捌");break;
case '9':printf("玖");break;
}
if(a[i]=='0')
{
if(m==0)
{
printf("零");
m++;count--;
continue;
}
else
{
m--;count--;
continue;
}
}
if (count>4)
{
int b=count-4;
if(b==1)printf("万");
if(b==2)printf("拾");
if(b==3)printf("佰");
if(b==4)printf("仟");
count--;
continue;
}
if(count<=4)
{
switch(count)
{
case 1:printf("元整");break;
case 2:printf("拾");break;
case 3:printf("佰");break;
case 4:printf("仟");break;
}
count--;
}
}
return 0;
}


#include<stdio.h>

int main()
{
    char a[8];
    int tempt, count = 0;
    while (1)
    {
        scanf("%c", &tempt);
        if (tempt == '\n') break;
        a[count] = tempt;
        count++;
    }

    int i, count_1 = count, m = 0;
    if (count == 1 && a[0] == '0')
    {
        printf("零元整");
        return 0;
    }
    for (i = 0; i <= count_1; i++)
    {
        switch (a[i])
        {
        case '1':
            printf("壹");
            break;
        case '2':
            printf("贰");
            break;
        case '3':
            printf("叁");
            break;
        case '4':
            printf("肆");
            break;
        case '5':
            printf("伍");
            break;
        case '6':
            printf("陆");
            break;
        case '7':
            printf("柒");
            break;
        case '8':
            printf("捌");
            break;
        case '9':
            printf("玖");
            break;
        }
        if (a[i] == '0')
        {
            if (m == 0)
            {
                printf("零");
                m++;
                count--;
                continue;
            }
            else
            {
                m--;
                count--;
                continue;
            }
        }
        if (count > 4)
        {
            int b = count - 4;
            if (b == 1)
                printf("万");
            if (b == 2)
                printf("拾");
            if (b == 3)
                printf("佰");
            if (b == 4)
                printf("仟");
            count--;
            continue;
        }
        if (count <= 4)
        {
            switch (count)
            {
            case 1:
                printf("元整");
                break;
            case 2:
                printf("拾");
                break;
            case 3:
                printf("佰");
                break;
            case 4:
                printf("仟");
                break;
            }
            count--;
        }
    }

    return 0;
}