最近刷題有用到字串和整形數字之間的轉化,特地總結一下。
int本身也要用一串字元表示,前後沒有雙引號,告訴編譯器把它當作乙個數解釋。預設情況下,是當成10進製(dec)來解釋,如果想用8進製,16進製制,怎麼辦?加上字首,告訴編譯器按照不同進製去解釋。8進製(oct)---字首加0,16進製制(hex)---字首加0x或者0x。
string前後加上雙引號,告訴編譯器把它當成一串字元來解釋。
注意:對於字元,需要區分字元和字元表示的數值。比如:char a = 8;char b = '8',a表示第8個字元,b表示字元8,是第56個字元。
一、字串轉化為整數
1、可以使用的函式stoi(),stod(),stoll()等,總結**如下:
atof
將字串轉換成浮點型數
atoi
將字串轉換成整型數
atol
將字串轉換成長整型數
strtod
將字串轉換成浮點數
strtol
將字串轉換成長整型數
strtoul
將字串轉換成無符號長整型數
toascii
將整型數轉換成合法的ascii 碼字元
toupper
將小寫字母轉換成大寫字母
tolower
將大寫字母轉換成小寫字母
舉例:
string str = "3.1415926";
cout《符串轉數字:使用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進製
3、
使用stringstream,舉例如下:
string s = "17";
stringstream ss;
ss<>i;
cout<
二、整數轉化為字串
1、使用sprintf(),舉例如下:
char str[10];
int a=1234321;
sprintf(str,"%d",a);
cout<
int a = 10;
char ch[10];
itoa(a,ch,10);
cout《舉例如下:
int a = 10;
stringstream s;
s<,
舉例如下:
int ii = 1234;
string sss = to_string(ii);
cout<
字串和數字的相互轉換
有時候在伺服器端開發的時候,需要對自定製上層協議來序列化和反序列化資料,這種情況下有時候就會用到標題所言的這種操作。下面我列舉幾種常見的方法。char buf size a 10 b 20 int a 0 int b 0 sscanf buf,a d b d a,b int result a b c...
C語言 字串和數字的相互轉換
1.數字轉換為字串 sprintf 跟printf 在用法上幾乎一樣,只是列印的目的地不同而已,前者列印到字串中,後者則直接在命令列上輸出。sprintf 是個變參函式,定義如下 int sprintf char buffer,const char format argument 除了前兩個引數型別...
Qt數字與字串之間的相互轉換
把qstring轉換為 double型別 方法1.qstring str 123.45 double val str.todouble val 123.45 方法2.很適合科學計數法形式轉換 bool ok double d d qstring 1234.56e 02 todouble ok ok ...