C语言人民币金额大写
时间: 2023-12-03 12:39:41 浏览: 172
以下是C语言实现人民币金额大写的代码,该代码可以将阿拉伯数字金额转换为中文大写金额:
```c
#include <stdio.h>
#include <string.h>
char *num[] = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"}; // 数字
char *unit[] = {"", "拾", "佰", "仟", "万"}; // 单位
void convert(char *str) {
int len = strlen(str);
int flag = 0; // 标记是否出现过非零数字
for (int i = 0; i < len; i++) {
int n = str[i] - '0'; // 当前数字
int m = len - i - 1; // 当前数字位数
if (n == 0) { // 当前数字为0
if (m == 4) { // 万位为0
printf("万");
} else if (m == 0 || (m % 4 == 0 && flag)) { // 元位为0或者连续出现多个0
printf("零");
flag = 0;
}
} else { // 当前数字不为0
if (flag && m % 4 == 0) { // 连续出现多个0
printf("零");
}
if (m == 4) { // 万位
printf("%s万", num[n]);
} else { // 其他位
printf("%s%s", num[n], unit[m % 4]);
}
flag = 1;
}
}
}
int main() {
char str[20];
printf("请输入金额(最大99999.99):");
scanf("%s", str);
int len = strlen(str);
if (len > 5) { // 处理万元及以上的金额
char tmp[20];
strcpy(tmp, str);
tmp[len - 4] = '\0';
convert(tmp);
printf("元");
convert(str + len - 4);
} else { // 处理万元以下的金额
convert(str);
}
printf("元整\n");
return 0;
}
```
阅读全文