1、字串數字之間的轉換
(1)string --> char *
string str(「ok」);
char * p = str.c_str();
(2)char * -->string
char *p = 「ok」;
string str§;
(3)char * -->cstring
char *p =「ok」;
cstring m_str§;
//或者
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);
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++輸入參考
Java 數字與字串互轉
1.string.valueof number 直接使用string類的靜態方法,只產生乙個物件 int a 9 string b string.valueof a 2.integer.tostring number int a 10 string b integer.tostring a floa...
golang 字串數字互轉
64位unsigned 最大值 var auint uint uint 0 fmt.println auint fmt.println uint64 math.exp2 63 4 uint64 math.exp2 63 4 1 超範圍賦乙個最大值?fmt.println fmt.sprintf fm...
字串與數字的相互轉換
在寫程式的時候常常碰到字串與數字相互轉換的問題,這裡做乙個小小的總結。字串與數字的轉換的方法比較多,按照不同的開發環境可以分為c c mfc,當然這三者存在著包含關係,在c開發環境中實現的方法在c 開發環境自然可以用,而用c 開發環境使用的方法在mfc一樣也可以使用。由於c mfc中使用類模板 cs...