// 把金额字符串转成大写int GetAmount(char *pInAmount, int nInLen, char *pOutAmount, int *pnOutLen){char *p;char szTmp[20];char str1[][3] = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};char str2[][5] = {"零分", "零角", "零元", "零拾", "零佰", "零仟", "零万", "零拾", "零佰", "零仟", "零亿", "零拾"};int i;int j;int k;int nLen; int isZero; // 前一位是0则标志置为1,否则为0p = pInAmount;for(i = 0; i < nInLen; i++) // 去掉前补0{if(p[i] != '0')break;}memset(szTmp, 0, sizeof(szTmp));memcpy(szTmp, p + i, nInLen - i);// test add// PubDisplay(3, "%s", szTmp);// endj = 0;for(i = (strlen(szTmp) - 1); i >= 0; i--){k = szTmp[i] - '0';memcpy(str2[j], str1[k], 2);j++; // str2长度}nLen = 0; isZero = 0;for(i = (j-1); i >= 0; i--){if(memcmp(str2[i], "零", 2) != 0){ if(isZero == 1) { memcpy(pOutAmount + nLen, "零", 2); nLen += 2; }memcpy(pOutAmount + nLen, str2[i], 4);nLen += 4; isZero = 0;} else { isZero = 1; if(memcmp(str2[i], "零元", 4) == 0) { memcpy(pOutAmount + nLen, "元", 2); nLen += 2; } else if(memcmp(str2[i], "零万", 4) == 0) { memcpy(pOutAmount + nLen, "万", 2); nLen += 2; } else if(memcmp(str2[i], "零亿", 4) == 0) { memcpy(pOutAmount + nLen, "亿", 2); nLen += 2; } }}if(memcmp(pOutAmount + (nLen - 2), "角", 2) != 0 && memcmp(pOutAmount + (nLen - 2), "分", 2) != 0){memcpy(pOutAmount + nLen, "整", 2);nLen += 2;}pOutAmount[nLen] = 0;*pnOutLen = nLen;return NORMAL;}