C 中數字與字串之間的轉換

2021-09-08 16:24:50 字數 2185 閱讀 5223

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;

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進製轉換成16進製制,如果輸出大寫的字母是sprintf(str,"%x",a)

--------------------

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 中數字與字串之間的轉換

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 st...

C 中數字與字串之間的轉換

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.form...

C 中數字與字串之間的轉換

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 st...