很久以前的时候写了, 不知能后用, 可以试试char * numtoup(char *str,DWORD a,int f)
{
int b,c,i,j,inum[10];
char snum[10][10],sadj[10][10],buf1[100],buf2[100],buf3[100],buf4[100],buf[3][100],tmp[100];
strcpy(snum[0],"零");
strcpy(snum[1],"壹");
strcpy(snum[2],"贰");
strcpy(snum[3],"叁");
strcpy(snum[4],"肆");
strcpy(snum[5],"伍");
strcpy(snum[6],"陆");
strcpy(snum[7],"柒");
strcpy(snum[8],"捌");
strcpy(snum[9],"玖");
strcpy(sadj[0],"");
strcpy(sadj[1],"拾");
strcpy(sadj[2],"佰");
strcpy(sadj[3],"仟");
strcpy(buf[0],"");
strcpy(buf[1],"");
strcpy(buf[2],"");
strcpy(sadj[4],"万"); // 4 万
strcpy(sadj[5],"亿"); // 8 亿
if(f==1)
{
c=0;
strcpy(tmp,"");
for(i=0;i<=9;i++)
{
b=(int)(a/pow(10,9-i));
b%=10;
if(b==0 && c==0) continue;
else {strcat(tmp,snum[b]); c=1;}
}
strcpy(str,tmp);
return str;
}
for(j=0;j<3;j++)
{
if(a < pow(10,(2-j)*4)) 
{
strcpy(sadj[5-j],"");
continue;
}
c=(int)(a/pow(10,(2-j)*4));
for(i=0;i<4;i++)
{
b=(int)(c/pow(10,3-i));
b%=10;
inum[i]=b;
}
{
if(inum[0]!=0) sprintf(buf1,"%s%s",snum[inum[0]],sadj[3]);
else sprintf(buf1,"零");
if(inum[1]!=0)  sprintf(buf2,"%s%s",snum[inum[1]],sadj[2]);
else sprintf(buf2,"零");
if(inum[2]!=0)  sprintf(buf3,"%s%s",snum[inum[2]],sadj[1]);
else sprintf(buf3,"零");
if(inum[3]!=0)  sprintf(buf4,"%s%s",snum[inum[3]],sadj[0]);
else sprintf(buf4,"");
sprintf(buf[j],"%s%s%s%s",buf1,buf2,buf3,buf4);
}
}
sprintf(tmp,"%s%s%s%s%s",buf[0],sadj[5],buf[1],sadj[4],buf[2]);
for(;;)
{
strcpy(buf1,tmp);
b=strlen(tmp);
strcpy(buf2,tmp+b-2);
buf1[2]=0;
if(strcmp(buf1,"零")==0) ::strdel(tmp,0,2);
else if(strcmp(buf2,"零")==0) tmp[b-2]=0;
else break;
}
for(;;)
{
b=strlen(tmp);
c=0;
int flg=0;
for(i=0;i<b-2;i+=2)
{
strcpy(buf1,tmp+i);
strcpy(buf2,tmp+i+2);
buf1[2]=0;
buf2[2]=0;
if(strcmp(buf1,"亿")==0 && strcmp(buf2,"万")==0) {flg=1; break; }
if(strcmp(buf1,"零")==0 && strcmp(buf2,"零")==0) {c=1; break; }
if(strcmp(buf1,"零")==0 && strcmp(buf2,"亿")==0) {c=1; break; }
if(strcmp(buf1,"零")==0 && strcmp(buf2,"万")==0) {c=1; break; }
}
if(c) ::strdel(tmp,i,2);
else if(flg) { memcpy(&tmp[i+2],"零",2);}
else break;
}
if(f==0)
{
strcpy(str,tmp);
return str;
}
else
{
if(a<10)
{
strcpy(str,"零");
strcat(str,tmp);
return str;
}
else
{
strcpy(str,tmp);
return str;
}
}
}