字串和數字之間的相互轉換總結

2021-07-16 22:24:28 字數 1490 閱讀 2100

最近刷題有用到字串和整形數字之間的轉化,特地總結一下。

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