📄 covmoney.c
字号:
#include "../inc/screen.h"/* * 将金额转换为大写 */char *covmoney(money,length)double money;int *length;{ static char str[61]; char buf[16],power[3]; int i,position,flag0; position = 0; sprintf(buf,"%15.2f",money); for(i = 0; i < 60; i++) str[i] = ' '; str[60] = NUL; for(i = 0; buf[i] == ' '; i++) ; while(i <= 14) { flag0 = TRUE; switch(i) { case 0: case 4: case 8: sprintf(power,"仟"); break; case 1: case 5: case 9: sprintf(power,"佰"); break; case 2: case 6: case 10: sprintf(power,"拾"); break; case 3: sprintf(power,"亿"); if(buf[i] == '0') { str[position] = power[0]; str[position+1] = power[1]; position += 2; goto next; } break; case 7: sprintf(power,"万"); if(buf[i] == '0') { str[position] = power[0]; str[position+1] = power[1]; position += 2; goto next; } break; case 11: sprintf(power,"元"); if(buf[i] == '0' && position != 0) { str[position] = power[0]; str[position+1] = power[1]; position += 2; goto next; } if(buf[i] == '0' && position == 0) { i++; goto next; } break; case 12: flag0 = FALSE; if(buf[i+1] == '0' && buf[i+2]=='0') { sprintf(power,"整"); str[position] = power[0]; str[position+1] = power[1]; position += 2; goto outloop; } break; case 13: sprintf(power,"角"); break; case 14: if(buf[i] == '0') goto outloop; sprintf(power,"分"); break; } if(flag0 == TRUE) if(i > 0) position += join(str,power,buf[i],buf[i+1],position); else position += join(str,power,buf[i],buf[i],position); next: i++; }outloop: str[position] = NUL; if(length != (int *)NUL) *length = position; return(str);}join(buff,string,digit,nextdig,pos)char *buff,*string,digit,nextdig;int pos;{ char dig[3]; int flag0; flag0 = TRUE; switch(digit) { case '0': if(nextdig != '0') sprintf(dig,"零"); else flag0 = FALSE; break; case '1': sprintf(dig,"壹"); break; case '2': sprintf(dig,"贰"); break; case '3': sprintf(dig,"叁"); break; case '4': sprintf(dig,"肆"); break; case '5': sprintf(dig,"伍"); break; case '6': sprintf(dig,"陆"); break; case '7': sprintf(dig,"柒"); break; case '8': sprintf(dig,"捌"); break; case '9': sprintf(dig,"玖"); break; } if(digit == '0') { if(flag0 == TRUE) { buff[pos] = dig[0]; buff[pos + 1] = dig[1]; return(2); } else return(0); } else { buff[pos] = dig[0]; buff[pos + 1] = dig[1]; buff[pos + 2] = string[0]; buff[pos + 3] = string[1]; return(4); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -