字串和數字之間的轉換

2021-07-15 02:39:06 字數 1909 閱讀 1288

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是常用的將陣列和字串之間轉換的函式 ...