
利用 char 数组存储输入的人名币数额,
首先判断所输入的数是否为俩位数,
如果是俩位数的话,
先把十位数字的大写写出来,
然后再加一个 “ 拾 ” 字,
然后再判断个位数字,
如果个位数字是非 0 的数,
同样输出其大写,
然后在其后加上 “ 元整 ” 俩个字,
但如果个位数字是 0
则其个位不用翻译,
如果输入的是一位数字,
直接输出其大写即可。
后面要加上 “ 元整 ” 俩个字
而不用输出后面的 “ 拾 ”
我们通过 strlen ( ) 函数来判断所输入的数字是二位数还是一位数
输入的数字是一位数的情况有俩种,
例如:
一种是输入 7 ,
另一种是输入 07
- #include
-
- using namespace std;
-
- void trans (int a)
- {
- if (a == 1)
- cout << "壹" ;
- else if(a == 2)
- cout << "贰" ;
- else if(a == 3)
- cout << "叁" ;
- else if(a == 4)
- cout << "肆" ;
- else if(a == 5)
- cout << "伍" ;
- else if(a == 6)
- cout << "陆" ;
- else if(a == 7)
- cout << "柒" ;
- else if(a == 8)
- cout << "捌" ;
- else if(a == 9)
- cout << "玖" ;
- }
-
- int main( )
- {
- char arr[2+1] = {'0'};
- cin >> arr;
-
- if(strlen(arr)==1 && arr[0]=='0')//输入是0元的情况
- cout << "零" ;
-
- //输入是像 07 ,70 这样的俩位数
- trans(arr[0]-'0');//翻译第一位,如果是0不翻译
-
- if(strlen(arr)==2 && arr[0]!='0')//如果是俩位数,十位非0,则输出拾
- cout << "拾" ;
-
- trans(arr[1]-'0');//输出个位
- /*-'0'的目的是因为如果输入的是一位数的话,其十位数上是\0,
- 所以不会进入 trans() 函数中
- 如果输入的是像 30 这样的二位数的话,
- 也不会进入到 trans() 函数中
- 而如果输入的是个位数为非0的二位数时,才会执行trans()函数
- 此时减去 ‘0’ 也不会有任何影响*/
-
- cout << "元整" ;
-
- return 0;
- }