如何將int轉string? (C/C++) (C)

C/C++並沒有提供內建的int轉string函數,這裡提供幾個方式達到這個需求。

1.若用C語言,且想將int轉char *,可用sprintf(),sprintf()可用類似printf()參數轉型。

 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
11 void  int2str( int  ,  char   * );
12
13 int  main()  {
14  int i = 123;
15  char s[64];
16  int2str(i, s);
17  puts(s);
18}

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


2.若用C語言,還有另外一個寫法,使用_itoa(),Microsoft將這個function擴充成好幾個版本,可參考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
12 void  int2str( int  ,  char   * );
13
14 int  main()  {
15  int i = 123;
16  char s[64];
17  int2str(i, s);
18  puts(s);
19}

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


3.若用C++,stringstream是個很好用的東西,stringstream無論是<<或>>,都會自動轉型,要做各型別間的轉換,stringstream是個很好的媒介。

 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
14 using   namespace  std;
15
16 string  int2str( int & );
17
18 int  main( void {
19  int i = 123;
20  string s;
21  s = int2str(i);
22
23  cout << s << endl;
24}

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


4.若用C++,據稱boost有更好的方法,不過我還沒有裝boost,所以無從測試

See Also
(原創) 如何将int,double转std::string? (C/C++) (template)
(原創) 如何将std::string转int,double? (C/C++) (template)

Reference
http://www.cppblog.com/forLinda/archive/2006/03/17/4298.html

你可能感兴趣的:(String)