C/C++並沒(méi)有提供內(nèi)建的int轉(zhuǎn)string函數(shù),這裡提供幾個(gè)方式達(dá)到這個(gè)需求。

1.若用C語(yǔ)言,且想將int轉(zhuǎn)char *,可用sprintf(),sprintf()可用類(lèi)似printf()參數(shù)轉(zhuǎn)型。

 1/* 
 2(C) OOMusou 2007 http://oomusou.cnblogs.com
 3
 4Filename    : int2str_sprintf.cpp
 5Compiler    : Visual C++ 8.0 / ANSI C
 6Description : Demo the how to convert int to const char *
 7Release     : 01/06/2007 1.0
 8*/

 9#include "stdio.h"
10
11void int2str(int , char *);
12
13int main() {
14  int i = 123;
15  char s[64];
16  int2str(i, s);
17  puts(s);
18}

19
20void int2str(int i, char *s) {
21  sprintf(s,"%d",i);
22}


2.若用C語(yǔ)言,還有另外一個(gè)寫(xiě)法,使用_itoa(),Microsoft將這個(gè)function擴(kuò)充成好幾個(gè)版本,可參考MSDN Library。

 1/* 
 2(C) OOMusou 2007 http://oomusou.cnblogs.com
 3
 4Filename    : int2str_itoa.cpp
 5Compiler    : Visual C++ 8.0 / ANSI C
 6Description : Demo the how to convert int to const char *
 7Release     : 01/06/2007 1.0
 8*/

 9#include "stdio.h"  // puts()
10#include "stdlib.h" // _itoa()
11
12void int2str(int , char *);
13
14int main() {
15  int i = 123;
16  char s[64];
17  int2str(i, s);
18  puts(s);
19}

20
21void int2str(int i, char *s) {
22  _itoa(i, s, 10);
23}


3.若用C++,stringstream是個(gè)很好用的東西,stringstream無(wú)論是<<或>>,都會(huì)自動(dòng)轉(zhuǎn)型,要做各型別間的轉(zhuǎn)換,stringstream是個(gè)很好的媒介。

 1/* 
 2(C) OOMusou 2007 http://oomusou.cnblogs.com
 3
 4Filename    : int2str_sstream.cpp
 5Compiler    : Visual C++ 8.0 / ISO C++
 6Description : Demo the how to convert int to string
 7Release     : 01/06/2007 1.0
 8*/

 9
10#include <iostream>
11#include <string>
12#include <sstream>
13
14using namespace std;
15
16string int2str(int &);
17
18int main(void{
19  int i = 123;
20  string s;
21  s = int2str(i);
22
23  cout << s << endl;
24}

25
26string int2str(int &i) {
27  string s;
28  stringstream ss(s);
29  ss << i;
30
31  return ss.str();
32}


4.若用C++,據(jù)稱(chēng)boost有更好的方法,不過(guò)我還沒(méi)有裝boost,所以無(wú)從測(cè)試