c++中數(shù)字與字符串之間的轉(zhuǎn)換方法(推薦)
1、字符串?dāng)?shù)字之間的轉(zhuǎn)換
(1)string --> char *
string str("OK");
char * p = str.c_str();
(2)char * -->string
char *p = "OK";
string str(p);
(3)char * -->CString
char *p ="OK";
CString m_Str(p);
//或者
CString m_Str;
m_Str.Format("%s",p);
(4)CString --> char *
CString str("OK");
char * p = str.GetBuffer(0);
...
str.ReleaseBuffer();
(5)string --> CString
CString.Format("%s", string.c_str());
(6)CString --> string
string s(CString.GetBuffer(0));
GetBuffer()后一定要ReleaseBuffer(),否則就沒有釋放緩沖區(qū)所占的空間,CString對象不能動態(tài)增長了。
(7)double/float->CString
double data;
CString.Format("%.2f",data); //保留2位小數(shù)
(8)CString->double
CString s="123.12";
double d=atof(s);
(9)string->double
double d=atof(s.c_str());
2、數(shù)字轉(zhuǎn)字符串:使用sprintf()函數(shù)
char str[10]; int a=1234321; sprintf(str,"%d",a); -------------------- char str[10]; double a=123.321; sprintf(str,"%.3lf",a); -------------------- char str[10]; int a=175; sprintf(str,"%x",a);//10進(jìn)制轉(zhuǎn)換成16進(jìn)制,如果輸出大寫的字母是sprintf(str,"%X",a) -------------------- char *itoa(int value, char* string, int radix);
同樣也可以將數(shù)字轉(zhuǎn)字符串,不過itoa()這個函數(shù)是平臺相關(guān)的(不是標(biāo)準(zhǔn)里的),故在這里不推薦使用這個函數(shù)。
3、字符串轉(zhuǎn)數(shù)字:使用sscanf()函數(shù)
char str[]="1234321"; int a; sscanf(str,"%d",&a); ............. char str[]="123.321"; double a; sscanf(str,"%lf",&a); ............. char str[]="AF"; int a; sscanf(str,"%x",&a); //16進(jìn)制轉(zhuǎn)換成10進(jìn)制
另外也可以使用atoi(),atol(),atof().
4、使用stringstream類
用ostringstream對象寫一個字符串,類似于sprintf()
ostringstream s1; int i = 22; s1 << "Hello " << i << endl; string s2 = s1.str(); cout << s2;
用istringstream對象讀一個字符串,類似于sscanf()
istringstream stream1; string string1 = "25"; stream1.str(string1); int i; stream1 >> i; cout << i << endl; // displays 25
以上就是小編為大家?guī)淼腸++中數(shù)字與字符串之間的轉(zhuǎn)換方法(推薦)的全部內(nèi)容了,希望對大家有所幫助,多多支持腳本之家~
相關(guān)文章
關(guān)于C++對象繼承中的內(nèi)存布局示例詳解
這篇文章主要給大家介紹了關(guān)于C++對象繼承中內(nèi)存布局的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-08-08
HDOJ 1443 約瑟夫環(huán)的最新應(yīng)用分析詳解
本篇文章是對HDOJ 1443 約瑟夫環(huán)的最新應(yīng)用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
C語言中關(guān)于庫函數(shù) qsort 的模擬實現(xiàn)過程
庫函數(shù)的模擬實現(xiàn)有利于我們?nèi)ド钊肓私膺@個函數(shù)內(nèi)部是怎樣實現(xiàn)的,以及學(xué)習(xí)它的算法,使我們更加了解這個函數(shù)該怎樣去使用,接下來我將詳細(xì)的介紹qsort的應(yīng)用及用法,并且用代碼模擬實現(xiàn)它們的功能2021-09-09
C++?MiniZip實現(xiàn)目錄壓縮與解壓的示例詳解
Zlib是一個開源的數(shù)據(jù)壓縮庫,提供了一種通用的數(shù)據(jù)壓縮和解壓縮算法,本文主要為大家詳細(xì)介紹了如何利用Zlib實現(xiàn)目錄壓縮與解壓,需要的小伙伴可以參考下2023-11-11

