导读:
C/C++並沒有提供內建的int轉string函數,這裡提供幾個方式達到這個需求。
1.若用C語言,且想將int轉char *,可用sprintf(),sprintf()可用類似printf()參數轉型。
1
/**//* 2
(C) OOMusou 2007 http://oomusou.cnblogs.com
3
4
Filename : int2str_sprintf.cpp 5
Compiler : Visual C++ 8.0 / ANSI C 6
Description : Demo the how to convert int to const char * 7
Release : 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
4
Filename : int2str_itoa.cpp 5
Compiler : Visual C++ 8.0 / ANSI C 6
Description : Demo the how to convert int to const char * 7
Release : 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
4
Filename : int2str_sstream.cpp 5
Compiler : Visual C++ 8.0 / ISO C++ 6
Description : Demo the how to convert int to string 7
Release : 01/06/2007 1.0 8
*/
9
10
#include
11
#include
12
#include
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
本文转自
http://www.cnblogs.com/oomusou/archive/2007/01/06/613413.html
C/C++並沒有提供內建的int轉string函數,這裡提供幾個方式達到這個需求。
1.若用C語言,且想將int轉char *,可用sprintf(),sprintf()可用類似printf()參數轉型。
1
/**//* 2
(C) OOMusou 2007 http://oomusou.cnblogs.com
3
4
Filename : int2str_sprintf.cpp 5
Compiler : Visual C++ 8.0 / ANSI C 6
Description : Demo the how to convert int to const char * 7
Release : 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
4
Filename : int2str_itoa.cpp 5
Compiler : Visual C++ 8.0 / ANSI C 6
Description : Demo the how to convert int to const char * 7
Release : 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
4
Filename : int2str_sstream.cpp 5
Compiler : Visual C++ 8.0 / ISO C++ 6
Description : Demo the how to convert int to string 7
Release : 01/06/2007 1.0 8
*/
9
10
#include
11
#include
12
#include
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
本文转自
http://www.cnblogs.com/oomusou/archive/2007/01/06/613413.html