写一个函数 char * Convert(int m),将传入的参数m(m最多为五位数而且是整数)转换为大写的金额。如m为12345,则返回“壹万贰仟叁佰肆拾伍”。用c语言给出完整代码
时间: 2023-01-31 20:33:12 浏览: 108
C语言 金额转换大写
以下是使用 C 语言实现的 Convert 函数:
```
#include <stdio.h>
#include <string.h>
char* Convert(int m) {
// 定义用于转换的字符串数组
char nums[10][5] = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
char levels[5][5] = {"", "十", "百", "千", "万"}; // 定义用于转换的级别字符串数组
// 定义用于保存结果的字符数组
static char result[20];
memset(result, 0, sizeof(result)); // 初始化字符数组
// 将数字 m 转换为字符串
char str[6];
sprintf(str, "%d", m);
// 定义循环变量和计数器
int i, j, len = strlen(str);
int count = 0; // 计数器用于记录已经转换的字符数
// 循环转换每一位数字
for (i = len - 1; i >= 0; i--) {
// 如果当前位数字不为零,则转换
if (str[i] != '0') {
// 将数字转换为中文,并添加到结果字符数组中
strcat(result, nums[str[i] - '0']);
// 将对应的级别转换为中文,并添加到结果字符数组中
strcat(result, levels[len - i - 1]);
count++; // 已转换的字符数加 1
} else {
// 如果当前位数字为零,则判断是否需要添加 "零"
if (count > 0) {
// 如果已转换的字符数大于 0
阅读全文