xaut3 发表于 2010-4-26 08:52:46

如何將int轉string? (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
11void int2str(int , char
*);
12
13int main() {
14int i =
123;
15char s[64];
16int2str(i, s);
17puts(s);
18}
19
20void int2str(int i, char
*s) {
21sprintf(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
12void int2str(int , char
*);
13
14int main() {
15int i =
123;
16char s[64];
17int2str(i, s);
18puts(s);
19}
20
21void 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
14using
namespace std;
15
16string int2str(int &);
17
18int main(void) {
19int i =
123;
20string s;
21s = int2str(i);
22
23cout << s << endl;
24}
25
26string int2str(int &i) {
27string s;
28stringstream ss(s);
29ss << i;
30
31return ss.str();
32}


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

sdad 发表于 2010-7-14 07:08:57

這很實用!!!

gxf 发表于 2011-11-12 11:36:07

不错啊。
页: [1]
查看完整版本: 如何將int轉string? (C/C++) (绝对是好东西)

招聘斑竹