1、字串數字之間的轉換
(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(),否則就沒有釋放緩衝區所佔的空間,cstring物件不能動態增長了。
(7)double/float->cstring
double data;
cstring.format(「%.2f」,data); //保留2位小數
(8)cstring->double
cstring s=」123.12」;
double d=atof(s);
(9)string->double
double d=atof(s.c_str());
2、數字轉字串:使用sprintf()函式
char str[10];
int a=1234321;
char str[10];
double a=123.321;
char str[10];
int a=175;
char itoa(int value, char string, int radix);
同樣也可以將數字轉字串,不過itoa()這個函式是平台相關的(不是標準裡的),故在這裡不推薦使用這個函式。
3、字串轉數字:使用sscanf()函式
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進製制轉換成10進製
另外也可以使用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
C 中字串和數字之間的轉換
最近遇到看書和做題遇到的一些關於字串和數字轉化之間的問題,做乙個整理。具體可以參考 演算法筆記 p53頁 sscanf的使用 sscanf是將字元陣列的內容以對應數字形式 也可以是字串的形式,本篇主要討論字元與數字的轉化 傳輸到n中 從左到右 例如 include intmain 不同型別變數的組合...
字串和數字之間的轉化
1.由 基本資料型態轉換成 string string 類別中已經提供了將基本資料型態轉換成 string 的 static 方法 也就是 string.valueof 這個引數多載的方法 有下列幾種 string.valueof boolean b 將 boolean 變數 b 轉換成字串 str...
字串和陣列之間的轉換
size medium 將陣列轉換成字串 array array lastname email phone result implode array echo result lastname,email,phone 將字串轉換成陣列 implode,explode是常用的將陣列和字串之間轉換的函式 ...