#include <stdio.h>
#include <string.h>
void gewei(char geweishu) {
switch (geweishu) {
case '0':
printf("零");
break;
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;
}
}
void shiwei(char shiweishu) {
switch (shiweishu) {
case '1':
printf("拾");
break;
default:
gewei(shiweishu);
printf("拾");
}
}
void qianwei(char n[], int index) {
gewei(n[index - 7]);
printf("仟");
if (n[index - 6] == '0' && n[index - 5] == '0' && n[index - 4] == '0') {
// 如果全是0不用输出“零”
} else if (n[index - 6] == '0' && n[index - 5] == '0') {
// 如果百位和十位是0,个位不是0,那么输出“零”加个位数的数字
printf("零");
gewei(n[index - 4]);
} else if (n[index - 6] == '0' && n[index - 4] == '0') {
// 如果百位是0和个位是0,输出“零”加十位数
printf("零");
shiwei(n[index - 5]);
} else if (n[index - 5] == '0' && n[index - 4] == '0') {
// 如果百位不是0,个位和十位是0,那么输出百位就可以了
gewei(n[index - 6]);
printf("佰");
} else if (n[index - 6] == '0') {
// 如果只有百位是0,输出0然后输出十位和个位
printf("零");
shiwei(n[index - 5]);
gewei(n[index - 4]);
} else if (n[index - 5] == '0') {
// 如果只有十位是0,输出百位然后输出0然后输出个位
gewei(n[index - 6]);
printf("佰零");
gewei(n[index - 4]);
} else if (n[index - 4] == '0') {
// 如果只有个位是0,不用写0,输出百位十位就可以了
gewei(n[index - 6]);
printf("佰");
shiwei(n[index - 5]);
} else {
// 如果没有0那么我们全部输出
gewei(n[index - 6]);
printf("佰");
shiwei(n[index - 5]);
gewei(n[index - 4]);
}
}
int main() {
char n[100];
while (scanf("%s", n) != EOF) {
printf("人民币");
int len = strlen(n);
if (len == 12) {
// 如果有亿位
gewei(n[len - 12]);
printf("亿");
strncpy(n, n + 1, 11);
len = 11;
}
if (len == 11) {
// 如果有千万位,
qianwei(n, 7);
printf("万");
strncpy(n, n + 4, 7);
len = 7;
}
if (len == 10) {
// 如果有百万位,先输出百万,然后按照千位继续
gewei(n[len - 10]);
printf("佰");
if (n[len - 9] == '0') {
printf("零");
} else {
shiwei(n[len - 9]);
if (n[len - 8] == '0') {
// 不用输出零
} else {
gewei(n[len - 8]);
}
}
printf("万");
strncpy(n, n + 3, 7);
len = 7;
}
if (len == 9) {
// 如果有十万位,先输出几十几万然后再按照千位的继续
shiwei(n[len - 9]);
if (n[len - 8] == '0') {
// 不用输出零
} else {
gewei(n[len - 8]);
}
printf("万");
strncpy(n, n + 2, 7);
// printf("%s", n);
len = 7;
}
if (len == 8) {
// 如果有万位,先输出几万
gewei(n[len - 8]);
printf("万");
// 然后判断0,如果千位不是0,那么我们按照千位的方法继续
if (n[len - 7] != '0') {
strncpy(n, n + 1, 7);
len = 7;
// 如果千位是0,百位不是0,我们输出0然后按照百位的方法继续
} else if (n[len - 7] == '0' && n[len - 6] != '0') {
printf("零");
strncpy(n, n + 2, 6);
len = 6;
// 如果千位百位都是0,十位不是0我们输出0然后按照十位的方法继续
} else if (n[len - 7] == '0' && n[len - 6] == '0' && n[len - 5] != '0') {
printf("零");
strncpy(n, n + 3, 5);
len = 5;
} else if (n[len - 7] == '0' && n[len - 6] == '0' && n[len - 5] == '0' &&
n[len - 4] != '0') {
printf("零");
strncpy(n, n + 4, 4);
len = 4;
}
}
if (len == 4) {
// 如果长度为4,只有个位
if(n[len - 4] != '0') gewei(n[len - 4]);
} else if (len == 5) {
shiwei(n[len - 5]);
if (n[len - 4] == '0') {
// 不用输出零
} else {
gewei(n[len - 4]);
}
} else if (len == 6) {
gewei(n[len - 6]);
printf("佰");
if (n[len - 5] == '0') {
printf("零");
} else {
shiwei(n[len - 5]);
if (n[len - 4] == '0') {
// 不用输出零
} else {
gewei(n[len - 4]);
}
}
} else if (len == 7) {
gewei(n[len - 7]);
printf("仟");
if (n[len - 6] == '0' && n[len - 5] == '0' && n[len - 4] == '0') {
// 如果全是0不用输出“零”
} else if (n[len - 6] == '0' && n[len - 5] == '0') {
// 如果百位和十位是0,个位不是0,那么输出“零”加个位数的数字
printf("零");
gewei(n[len - 4]);
} else if (n[len - 6] == '0' && n[len - 4] == '0') {
// 如果百位是0和个位是0,输出“零”加十位数
printf("零");
shiwei(n[len - 5]);
} else if (n[len - 5] == '0' && n[len - 4] == '0') {
// 如果百位不是0,个位和十位是0,那么输出百位就可以了
gewei(n[len - 6]);
printf("佰");
} else if (n[len - 6] == '0') {
// 如果只有百位是0,输出0然后输出十位和个位
printf("零");
shiwei(n[len - 5]);
gewei(n[len - 4]);
} else if (n[len - 5] == '0') {
// 如果只有十位是0,输出百位然后输出0然后输出个位
gewei(n[len - 6]);
printf("佰零");
gewei(n[len - 4]);
} else if (n[len - 4] == '0') {
// 如果只有个位是0,不用写0,输出百位十位就可以了
gewei(n[len - 6]);
printf("佰");
shiwei(n[len - 5]);
} else {
// 如果没有0那么我们全部输出
gewei(n[len - 6]);
printf("佰");
shiwei(n[len - 5]);
gewei(n[len - 4]);
// printf(" test %c", n[len]);
}
}
if(n[len - 4] != '0') printf("元");
if (n[len - 2] == '0' && n[len - 1] == '0') {
printf("整\n");
} else if (n[len - 2] != '0') {
gewei(n[len - 2]);
printf("角");
if (n[len - 1] == '0') printf("\n");
}
if (n[len - 1] != '0') {
gewei(n[len - 1]);
printf("分\n");
}
}
return 0;
}