TA的每日心情 | 开心 2021-12-13 21:45 |
---|
签到天数: 15 天 [LV.4]偶尔看看III
|
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
<
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 |
|