/ **************************** The following is the header ***************** ************ / CLASS CNUMTOHAN {public: cstring Chang (CString Num); cstring Changnum (int Num); cnumtohan (); virtual ~ cnumtohan ();
}; / *************************** The following is the implementation file ************** *************** / # include "stdafx.h" #include "numtohan.h"
CNUMTOHAN :: CNUMTOHAN () {
}
CNUMTOHAN :: ~ cnumtohan () {
} CString CNUMTOHAN :: Changnum (int Num) {IF (Num <0 || Num> 9) Return "Wrong"; CSTRING STR; Str.Format ("% D", NUM); cstring s = "0123456789"; cstring H [10] = {"zero", "", "", "", "", "Wu", "柒", "捌", "玖"}; return h S.Find (str, 0)];
CString CNUMTOHAN :: Chang (cstring Num) {CSTRING STR, STR1; CSTRING M_CUINT [16] = {"" "" "" "" "," "," yuan "," pick "," ", "仟", "10,000", "pick", "", "", "", "pick", "", ""}; int m_iin; int m_iloc; // decimal point position int m_izero = 0; BOOL M_BZEROEND = false; if (num.find (".", 0) == - 1) m_iloc = Num.getLength (); else m_iloc = Num.find (".", 0); for (INT i = 0; i
IF (m_izero <= 0 || m_bzeroeend) {if (m_izero> 0 && m_iin> 0) {str1 = "zero"; m_izero = 0; m_bzeroend = false;} str1 = changnum (m_iin); if (m_izero> 0 && m_iin == 0 ) {str1 = str1.Left (str1.getLength () - 2); m_izero = 0;} str1 = m_cuint [m_iloc 3];} if ((m_iloc == 9 || m_iloc == 5) && m_izero> 0) {BOOL M_B = True; IF ((str1.right (2) == "100 million" && m_cuint [m_iloc 3] == "10,000")) m_b = false; if (m_b) str1 = m_cuint [m_iloc 3]; m_izero = 0;} m_iloc--;} Return str1;