CString,字符串,整數等互相轉換辦法(推舉)。本站提示廣大學習愛好者:(CString,字符串,整數等互相轉換辦法(推舉))文章只能為提供參考,不一定能成為您想要的結果。以下是CString,字符串,整數等互相轉換辦法(推舉)正文
字符串轉int
int atoi(const char *string);
_int64 _atoi64(const char *string);
int _wtoi(const wchar_t *string);
_int64 _ wtoi64(const char *string);
字符串轉long
long atol(const char * string);
long _wtol(const wchar_t *string);
字符串轉double
double atof(const char *string);
double _wtof(const wchar_t *string);
int轉字符串
cahr *_itoa( int value,char *string,int radix);
char *_i64toa(_int64 value,char *string,int radix);
char * _ui64toa(unsigned _int64 value,char *string, int radix);
wchar_t * _itow(int value,wchar_t *string, int radix);
wchar_t * _i64tow(_int64 value,wchar_t *string, int radix);
wchar_t * _ui64tow(unsigned _int64 value,wchar_t *string, int radix);
參數的意義:value 是指要轉換的整數,sring 是用來寄存轉換後成果的方便,radix是用來講明轉換成幾進制的數據,默許值是十進制數的。轉換的進制規模是二進制到三十六進制。
long轉字符串
char *_ltoa( long value,char *string, int radix );
wchar_t *_ltow( long value, wchar_t *string, int radix );
個中,參數 value 為被轉換的值,參數string為字符串緩沖區,radix為進制。
double轉字符串
char *_fcvt( double value, int count, int *dec, int *sign );
個中參數value 為雙精度數,參數count為轉換的小數點前面的位數,dec表現小數點的地位, sign 表現符號。
(1) char*轉換成CString
若將char*轉換成CString,除直接賦值外,還可以使用CString::Format停止。例如:
char chArray[] = "Char test"; TCHAR * p = _T("Char test");( 或LPTSTR p = _T("Char test");) CString theString = chArray; theString.Format(_T("%s"), chArray); theString = p;
(2) CString轉換成char*
若將CString類轉換成char*(LPSTR)類型,經常應用以下三種辦法:
辦法一,應用強迫轉換。例如:
CString theString( (_T("Char test ")); LPTSTR lpsz =(LPTSTR)(LPCTSTR)theString;
辦法二,應用strcpy。例如:
CString theString( (_T("Char test ")); LPTSTR lpsz = new TCHAR[theString.GetLength()+1]; _tcscpy(lpsz, theString);
須要解釋的是,strcpy(或可移值的_tcscpy)的第二個參數是 const wchar_t* (Unicode)或const char* (ANSI),體系編譯器將會主動對其停止轉換。
辦法三,應用CString::GetBuffer。
假如你須要修正 CString 中的內容,它有一個特別的辦法可使用,那就是 GetBuffer,它的感化是前往一個可寫的緩沖指針。 假如你只是盤算修正字符或許截短字符串,例如:
CString s(_T("Char test ")); LPTSTR p = s.GetBuffer(); LPTSTR dot = strchr(p, ''.''); // 在這裡添加應用p的代碼 if(p != NULL) *p = _T(''); s.ReleaseBuffer();// 應用完後實時釋放,以便能應用其它的CString成員函數
在 GetBuffer 和 ReleaseBuffer 之間這個規模,必定不克不及應用你要操作的這個緩沖的 CString 對象的任何辦法。由於 ReleaseBuffer 被挪用之前,該 CString 對象的完全性得不到保證。
以上就是小編為年夜家帶來的CString,字符串,整數等互相轉換辦法(推舉)的全體內容了,願望對年夜家有所贊助,多多支撐~