天天看點

C++ int與string的轉化int本身也要用一串字元表示,前後沒有雙引号,告訴編譯器把它當作一個數解釋。預設情況下,是當成10進制(dec)來解釋,如果想用8進制,16進制,怎麼辦?加上字首,告訴編譯器按照不同進制去解釋。8進制(oct)---字首加0,16進制(hex)---字首加0x或者0X。

轉自:http://www.cnblogs.com/nzbbody/p/3504199.html

string前後加上雙引号,告訴編譯器把它當成一串字元來解釋。

注意:對于字元,需要區分字元和字元表示的數值。比如:char a = 8;char b = '8',a表示第8個字元,b表示字元8,是第56個字元。

 int轉化為string

1、使用itoa(int to string)

C++ int與string的轉化int本身也要用一串字元表示,前後沒有雙引号,告訴編譯器把它當作一個數解釋。預設情況下,是當成10進制(dec)來解釋,如果想用8進制,16進制,怎麼辦?加上字首,告訴編譯器按照不同進制去解釋。8進制(oct)---字首加0,16進制(hex)---字首加0x或者0X。
C++ int與string的轉化int本身也要用一串字元表示,前後沒有雙引号,告訴編譯器把它當作一個數解釋。預設情況下,是當成10進制(dec)來解釋,如果想用8進制,16進制,怎麼辦?加上字首,告訴編譯器按照不同進制去解釋。8進制(oct)---字首加0,16進制(hex)---字首加0x或者0X。

注意:itoa并不是一個标準的C函數,它是Windows特有的,如果要寫跨平台的程式,請用sprintf。

2、使用sprintf

C++ int與string的轉化int本身也要用一串字元表示,前後沒有雙引号,告訴編譯器把它當作一個數解釋。預設情況下,是當成10進制(dec)來解釋,如果想用8進制,16進制,怎麼辦?加上字首,告訴編譯器按照不同進制去解釋。8進制(oct)---字首加0,16進制(hex)---字首加0x或者0X。
C++ int與string的轉化int本身也要用一串字元表示,前後沒有雙引号,告訴編譯器把它當作一個數解釋。預設情況下,是當成10進制(dec)來解釋,如果想用8進制,16進制,怎麼辦?加上字首,告訴編譯器按照不同進制去解釋。8進制(oct)---字首加0,16進制(hex)---字首加0x或者0X。

3、使用stringstream

C++ int與string的轉化int本身也要用一串字元表示,前後沒有雙引号,告訴編譯器把它當作一個數解釋。預設情況下,是當成10進制(dec)來解釋,如果想用8進制,16進制,怎麼辦?加上字首,告訴編譯器按照不同進制去解釋。8進制(oct)---字首加0,16進制(hex)---字首加0x或者0X。
C++ int與string的轉化int本身也要用一串字元表示,前後沒有雙引号,告訴編譯器把它當作一個數解釋。預設情況下,是當成10進制(dec)來解釋,如果想用8進制,16進制,怎麼辦?加上字首,告訴編譯器按照不同進制去解釋。8進制(oct)---字首加0,16進制(hex)---字首加0x或者0X。

可以這樣了解,stringstream可以吞下不同的類型,根據s2的類型,然後吐出不同的類型。

4、使用boost庫中的lexical_cast

3和4隻能轉化為10進制的字元串,不能轉化為其它進制的字元串。

 string轉化為int

1、使用strtol(string to long) 

C++ int與string的轉化int本身也要用一串字元表示,前後沒有雙引号,告訴編譯器把它當作一個數解釋。預設情況下,是當成10進制(dec)來解釋,如果想用8進制,16進制,怎麼辦?加上字首,告訴編譯器按照不同進制去解釋。8進制(oct)---字首加0,16進制(hex)---字首加0x或者0X。
C++ int與string的轉化int本身也要用一串字元表示,前後沒有雙引号,告訴編譯器把它當作一個數解釋。預設情況下,是當成10進制(dec)來解釋,如果想用8進制,16進制,怎麼辦?加上字首,告訴編譯器按照不同進制去解釋。8進制(oct)---字首加0,16進制(hex)---字首加0x或者0X。

2、使用sscanf

C++ int與string的轉化int本身也要用一串字元表示,前後沒有雙引号,告訴編譯器把它當作一個數解釋。預設情況下,是當成10進制(dec)來解釋,如果想用8進制,16進制,怎麼辦?加上字首,告訴編譯器按照不同進制去解釋。8進制(oct)---字首加0,16進制(hex)---字首加0x或者0X。
C++ int與string的轉化int本身也要用一串字元表示,前後沒有雙引号,告訴編譯器把它當作一個數解釋。預設情況下,是當成10進制(dec)來解釋,如果想用8進制,16進制,怎麼辦?加上字首,告訴編譯器按照不同進制去解釋。8進制(oct)---字首加0,16進制(hex)---字首加0x或者0X。
C++ int與string的轉化int本身也要用一串字元表示,前後沒有雙引号,告訴編譯器把它當作一個數解釋。預設情況下,是當成10進制(dec)來解釋,如果想用8進制,16進制,怎麼辦?加上字首,告訴編譯器按照不同進制去解釋。8進制(oct)---字首加0,16進制(hex)---字首加0x或者0X。
C++ int與string的轉化int本身也要用一串字元表示,前後沒有雙引号,告訴編譯器把它當作一個數解釋。預設情況下,是當成10進制(dec)來解釋,如果想用8進制,16進制,怎麼辦?加上字首,告訴編譯器按照不同進制去解釋。8進制(oct)---字首加0,16進制(hex)---字首加0x或者0X。

注:stringstream可以吞下任何類型,根據實際需要吐出不同的類型。