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

 找回密码
 立即加入
搜索
查看: 1778|回复: 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函數,這裡提供幾個方式達到這個需求。
    " n5 m5 L. ^1 @0 t4 f6 g0 _1.若用C語言,且想將int轉char *,可用sprintf(),sprintf()可用類似printf()參數轉型。 1 ExpandedBlockStart.gif ContractedBlock.gif /**//*( q3 R3 ~3 ?/ z6 R) @- I
    2 InBlock.gif (C) OOMusou 2007 http://oomusou.cnblogs.com
    ( F9 s5 e' a, {0 R' u- J 3
    9 N1 I; T0 P; r6 b6 G
    4Filename    : int2str_sprintf.cpp
    , L7 v4 Z+ P+ B# |' v, ~( c
    5Compiler    : Visual C++ 8.0 / ANSI C
      p9 n  P" p$ b; E: _& p
    6Description : Demo the how to convert int to const char *
    2 K  S( F+ A) m/ |2 m
    7Release     : 01/06/2007 1.0
    1 l9 J1 g3 u3 n
    8 ExpandedBlockEnd.gif */7 l% T* P2 z/ ~" Q  F; k
    9 None.gif #include "stdio.h"
    - g7 `9 J3 i8 p, w5 D4 j9 J10! ^. F) b7 \/ b% P, h+ e5 M. P
    11void int2str(int , char0 o. I# O9 n7 q% u" k5 ^
    *);
    2 D% F2 m+ h: ]; F7 r
    12
      A+ s, q9 \2 ?6 K
    13int main() dot.gif {/ {7 X$ [3 K9 `6 \! x
    14  int i =
    & A/ B4 ^+ e/ |' k! m9 O* b123;5 \& O4 B' c7 ]3 v& W
    15  char s[64];! S4 h: P' f' [4 e: Z
    16  int2str(i, s);0 c6 Q4 i1 ]) ^3 e& M5 o9 r2 m2 |$ C' e" |
    17  puts(s);
    + e* }' H  v7 {* \9 t
    18}' B5 ?' Y9 z1 u* a! y& R6 w
    199 e+ A2 Y% V1 P& i$ B
    20void int2str(int i, char/ l) ]/ M4 A6 w7 N- y* O/ E
    *s) {% p# f' a9 a- d+ h
    21  sprintf(s,"%d",i);
    9 X1 e1 g  u, R# @: w! G
    22}

    + A3 x6 Z( s# A* T0 V  H" Q( t
    6 r) `( \; l) _" A' ]# c  W: I3 a2 I# @$ l# B( T4 a7 E
    2.若用C語言,還有另外一個寫法,使用_itoa(),Microsoft將這個function擴充成好幾個版本,可參考MSDN Library。
    . B; W8 I! D0 [0 K# o* G 1/**//*/ ]8 Q4 r9 |, _! U3 b& V9 Z
    2(C) OOMusou 2007 http://oomusou.cnblogs.com
    ) h( ]0 ^  b; ~1 Y 3$ l7 D6 k+ j9 f" j/ Z& I
    4Filename    : int2str_itoa.cpp
    6 e' U8 i3 D( ^! V5 n
    5Compiler    : Visual C++ 8.0 / ANSI C. K( G/ r- I! m! q, g
    6Description : Demo the how to convert int to const char */ D9 ]; {! r+ C
    7Release     : 01/06/2007 1.0
      J, k7 h( o& t3 V0 J! N! |
    8*/# t! B- k" F6 n, D6 |8 j+ E
    9#include "stdio.h"% X+ y* x8 R- y7 D
    // puts()  T$ ?! l+ U$ q" Y' h8 X
    10#include "stdlib.h"
    " b) A0 t, B) j' P1 ~, J+ O// _itoa()
    * {: H- E7 d* h- D+ x1 `% P11
    - J+ `  @1 w% L- o+ `4 B  s2 z12void int2str(int , char1 I6 |0 v- I! }7 [2 ?
    *);, v& ]2 e6 T# p$ S
    13
    3 o. [3 C8 u& v0 w
    14int main() {
    / d3 O& n* f6 w! t. \4 [3 S: V# b
    15  int i =
    ; w, u6 A9 v, U: `+ m" L123;
    3 s- I  j$ G" s
    16  char s[64];
    / ~8 f6 z: f) G
    17  int2str(i, s);
    4 Y) g2 {8 P3 M  i1 v
    18  puts(s);4 P. u4 e: m: L
    19}
    9 G- ~3 O! |* E. ?. ]7 }* Q! {20
    + e% w" N. j+ z3 d- Q1 j. P4 L
    21void int2str(int i, char4 y8 K- z6 f! G$ }$ f1 u+ I  \5 G
    *s) {1 s3 [5 [* X& f, b; P7 c
    22  _itoa(i, s, 10);
    $ i( j! T- H: G# _2 n' t) V! S* f0 X
    23}

      L0 {' o1 x0 S: S: e& T# P6 j! G8 b4 o6 B. w2 T9 @. W  t

    6 q( O" ~9 Y$ `, w2 R9 P3.若用C++,stringstream是個很好用的東西,stringstream無論是<<或>>,都會自動轉型,要做各型別間的轉換,stringstream是個很好的媒介。
    . y. \$ i8 o. ^1 R1 L" { 1/**//*: _- w& D. j4 k. ?
    2(C) OOMusou 2007 http://oomusou.cnblogs.com
    ) A: ?' v; D# |; [ 3% H" \. w. P7 i+ z! L1 C
    4Filename    : int2str_sstream.cpp3 k* G' M' B. t& J5 F/ X/ x( w
    5Compiler    : Visual C++ 8.0 / ISO C++2 v  X9 d, U( o$ Z7 I, I
    6Description : Demo the how to convert int to string( _6 N3 E3 r+ t4 Q8 m
    7Release     : 01/06/2007 1.0
    * A+ Q9 J& k4 o/ j3 i6 a" D
    8*/' _. m! Q  x+ T8 N/ V8 K) R$ y; h
    9
    1 F1 m4 h& K1 U) u% f% _% c3 p
    10#include <iostream>5 @: I6 ?1 a$ N
    11#include <string>
    ( \7 ?/ m! g$ U9 l12#include <sstream>0 A1 `9 O" ?4 i* v* _# ^# f3 i
    13
    $ ^' o. G6 W  x. o
    14using& P! t( A" ^2 ~
    namespace std;7 f6 k9 s! f* b( p7 V2 P
    15
    / B4 Y; U, u' J# |1 U' n) ?
    16string int2str(int &);
    6 A" C# \' o- [6 b
    17. K% [7 E) s2 G/ Q" t  g0 G4 R
    18int main(void) {
    6 ^4 T) W& p9 h# j1 w
    19  int i =+ f. y* P# u  K6 a8 ?! e1 N5 P# }
    123;
    2 W' z( U+ |- G6 J7 M2 R
    20  string s;
      a. X: i, r, ]
    21  s = int2str(i);) ^4 X7 m) y- K$ S3 C) K& L
    22
    ) z& @8 ]* c& b
    23  cout << s << endl;
    9 {/ X1 x' J. \& T. q2 y' u4 A
    24}
    , b6 |, y* m3 \2 K, i25. G. P6 s- X! ^+ h/ S
    26string int2str(int &i) {
    & N$ L6 J( B$ {; x" J1 q9 ]9 J
    27  string s;; O  ?8 J. l* b
    28  stringstream ss(s);
    ! ~0 V! [$ j8 g. E. B5 P
    29  ss << i;' i$ ]4 e7 Q; E/ |: W8 u
    30
      {2 N1 P% C3 q) P3 Y8 z7 g
    31  return ss.str();
    ! }, P5 i, m" l  g1 I) m
    32}

    / h7 m+ t- ~9 e5 S9 V: b% {2 i  c: j+ Y/ W9 k- }

    ( ~8 S+ ^: i* c% I4.若用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, 2024-3-28 22:34

    Powered by Discuz! X3.5 Licensed

    © 2001-2024 Discuz! Team.

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