设为首页收藏本站|繁體中文 快速切换版块

 找回密码
 立即加入
搜索
查看: 2175|回复: 2

如何將int轉string? (C/C++) (绝对是好东西)

 荐 [复制链接]
  • TA的每日心情
    慵懒
    2016-4-21 12:07
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    累计签到:3 天
    连续签到:1 天
    发表于 2010-4-26 08:52:46 | 显示全部楼层 |阅读模式

    马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!

    您需要 登录 才可以下载或查看,没有账号?立即加入

    ×
    C/C++並沒有提供內建的int轉string函數,這裡提供幾個方式達到這個需求。* g/ g- P2 x9 ?% a# ]  o
    1.若用C語言,且想將int轉char *,可用sprintf(),sprintf()可用類似printf()參數轉型。 1 ExpandedBlockStart.gif ContractedBlock.gif /**//*1 L; Q' C" y3 C( ~* z
    2 InBlock.gif (C) OOMusou 2007 http://oomusou.cnblogs.com
    / Q0 S1 [! V$ n5 j 3
    2 f) Z$ c+ J5 z: O( s7 R
    4Filename    : int2str_sprintf.cpp
    1 y( w2 l( @, Y$ W, e: C; G7 A
    5Compiler    : Visual C++ 8.0 / ANSI C% N' ]& m+ y  {  P' {- N9 S8 Q1 h  Q
    6Description : Demo the how to convert int to const char *
    / z: v' u; P3 C% W: \6 s
    7Release     : 01/06/2007 1.0
    + }8 H1 S6 s/ w8 W" ]/ ~
    8 ExpandedBlockEnd.gif */
    5 d; Q, i: b$ }+ p: L 9 None.gif #include "stdio.h"
    7 k  s9 X: y' }: A4 ^8 J10
    % M7 m. M! S2 c! W
    11void int2str(int , char! f' G1 l: B% T. l, }) ~
    *);( M+ ?0 i* h) i* w( k' `2 f
    12# X8 |7 E, d  F" X" v$ z; x
    13int main() dot.gif {
    1 W. s9 z8 d8 K' n' ~
    14  int i =
    5 ?  m: c5 ~% S' T, A8 ~# q* ~( S123;9 I) X5 t; G& O: F6 }5 b5 G
    15  char s[64];
    ( H8 Q! n' o: K2 U; Y; j
    16  int2str(i, s);
    , l" G) r* [/ A) K
    17  puts(s);. T  P* P1 ?- o1 ~2 ~
    18}
    ' j9 l1 h8 v! M+ f19
    ' W" k5 O  y' F2 }( Z) z3 z
    20void int2str(int i, char: f' J! _' ~( _  M4 N( n0 u
    *s) {
    ! I' G2 f1 Z8 v$ O$ @9 V
    21  sprintf(s,"%d",i);3 K9 z/ F% y( ]
    22}

    ) o; l; |" f: u$ h, Q/ q3 ?
    ! k% N- N/ o3 v4 h2 C7 i$ m+ U7 {3 z- @  j
    2.若用C語言,還有另外一個寫法,使用_itoa(),Microsoft將這個function擴充成好幾個版本,可參考MSDN Library。
    , h8 ^4 L& J& g; e7 k7 y 1/**//*) ]) H0 J) x& z
    2(C) OOMusou 2007 http://oomusou.cnblogs.com1 X" O! ]" [3 y, m5 e
    30 r0 J2 A. J) I! V( }
    4Filename    : int2str_itoa.cpp
    : K5 S% e  E% _* i& i1 X
    5Compiler    : Visual C++ 8.0 / ANSI C
    3 }# P$ r) l5 u' K# ^
    6Description : Demo the how to convert int to const char *
    0 f; ?6 e; w  |3 R8 K
    7Release     : 01/06/2007 1.0
    8 e- [5 ^6 O5 L! r  g, z
    8*/
    ; n3 H1 z" `4 J 9#include "stdio.h"9 Y& b+ V7 I( N7 n
    // puts()
    / D& L8 s4 s, B2 J10#include "stdlib.h"2 L4 S& z  M7 {. }
    // _itoa()
    , V& Y7 d% f& p: S1 A11$ e" L: v" B4 N9 K2 S8 V# g3 k
    12void int2str(int , char
    ( J) N% N: }+ t( X, w5 N6 l*);2 b% J  V3 h2 ^+ g
    138 M: |, u( i, K8 [% K4 V
    14int main() {3 Y2 \' W6 t) S, |$ w: L  J
    15  int i =
    : L% }, m+ T( \" L  E* C7 I" r0 @123;
    ! B% x/ e) j' X
    16  char s[64];9 @% p: q$ C) _
    17  int2str(i, s);
    $ E. _+ J$ a, ]% V7 X. A# ^
    18  puts(s);
    ; H) {/ M& E: P- k# ^7 {
    19}
    ( q/ U8 B, P+ x0 n20
    ) B$ P. E  ?3 Z
    21void int2str(int i, char: [# D2 U8 c  [: J+ f. k! G
    *s) {
    1 X7 u2 `7 B4 Q8 Y8 |1 w
    22  _itoa(i, s, 10);
    1 M, N( u: X  ~
    23}

    * B/ T: B" V" z. @5 z4 n8 i+ x$ ?+ ~' ^! k; w, y
    8 h/ n, v  a) V: T. ^
    3.若用C++,stringstream是個很好用的東西,stringstream無論是<<或>>,都會自動轉型,要做各型別間的轉換,stringstream是個很好的媒介。
    1 _& N% w& D- G4 @ 1/**//*( v8 G+ y$ ^# H2 P2 }* b
    2(C) OOMusou 2007 http://oomusou.cnblogs.com  q! Z7 x4 Q6 l5 T1 I( D
    3# o& o1 S* s" F0 T( @3 E# R
    4Filename    : int2str_sstream.cpp
    ; }5 x! t6 L) Y1 L4 D
    5Compiler    : Visual C++ 8.0 / ISO C++
    ( O% N  K) Q8 }" s, {1 I2 ?/ V
    6Description : Demo the how to convert int to string- q+ A! f5 `& K! ^
    7Release     : 01/06/2007 1.0" `$ D" s0 d4 B
    8*/
    5 V' ~1 c% k9 ^4 d+ U 9& r% Z; E9 N9 Q* ?
    10#include <iostream>* e! t3 ~1 l" a; U$ _4 J0 K$ i# Y. t
    11#include <string>
      U6 k' A) I4 k( h3 [) z12#include <sstream>/ w# V* t6 ^$ @: U- t" e
    13
    , ]: `, e! v' d4 k: e3 a3 ?5 K- d
    14using4 n5 f  m1 I' J1 u
    namespace std;. W% L. Z) \/ g5 _# D
    15; U* d' G0 {. E5 }9 i( Q6 D
    16string int2str(int &);" U) Y2 |4 i: |; L6 i
    17
    2 }8 V  [$ s, s6 U9 {& y
    18int main(void) {8 o9 B: x$ z8 k  f4 l% Q6 N5 f* B9 x) q
    19  int i =& i3 [$ l% C9 p, |
    123;
    ! L' x  u! ~$ @9 w8 N, H4 s( d
    20  string s;7 b, E& _7 z/ O4 q# |
    21  s = int2str(i);8 K4 a" K( u9 {/ O4 ]9 g9 A
    22
    * ~/ @- l+ ?% `% j+ ^4 Q( K7 r8 x
    23  cout << s << endl;
    . a/ k7 A- l5 w( R% F: {
    24}9 ^8 q, z  ?; @! @+ _( H
    254 D+ O1 G5 @+ k# E5 {$ s% T2 x
    26string int2str(int &i) {
    / v5 s  l7 d, D
    27  string s;' o+ f/ f) q  @# u1 b- r: u
    28  stringstream ss(s);
    , J* e" t8 z  M. {4 V8 h
    29  ss << i;
    7 W& [9 _% a) D& {% Q; f
    30; W6 D2 T  H* l! b; _" I" }
    31  return ss.str();; q3 B) S  U% e1 O9 F
    32}

    6 b# ~: v6 [7 f( S1 U9 ]9 X$ o6 ]" V0 T1 N4 ?* T3 c

    3 J/ ]6 p% a" q9 c( |2 s4.若用C++,據稱boost有更好的方法,不過我還沒有裝boost,所以無從測試

    评分

    参与人数 1威望 +2 学分 +1 收起 理由
    sdad + 2 + 1 很實用

    查看全部评分

    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    楼主热帖
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    擦汗
    2019-11-6 08:33
  • 签到天数: 32 天

    连续签到: 1 天

    [LV.5]常住居民I

    累计签到:32 天
    连续签到:1 天
    发表于 2010-7-14 07:08:57 | 显示全部楼层
    這很實用!!!
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】

    该用户从未签到

    尚未签到

    发表于 2011-11-12 11:36:07 | 显示全部楼层
    不错啊。
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

    小黑屋|手机版|APP下载(beta)|Archiver|电力研学网 ( 赣ICP备12000811号-1|赣公网安备36040302000210号 )|网站地图

    GMT+8, 2026-10-10 09:10

    Powered by Discuz! X3.5 Licensed

    © 2001-2026 Discuz! Team.

    快速回复 返回顶部 返回列表