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

 找回密码
 立即加入
搜索
查看: 2106|回复: 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函數,這裡提供幾個方式達到這個需求。
    1 r( J6 y$ d4 {7 Y- p1.若用C語言,且想將int轉char *,可用sprintf(),sprintf()可用類似printf()參數轉型。 1 ExpandedBlockStart.gif ContractedBlock.gif /**//*! S3 w" b' j# P& m1 C/ U
    2 InBlock.gif (C) OOMusou 2007 http://oomusou.cnblogs.com
    7 |1 q1 a+ z& \ 3
    ) _$ c7 Q* |5 t$ o
    4Filename    : int2str_sprintf.cpp' w' k- _; }, i+ h& A& I7 l$ U) }
    5Compiler    : Visual C++ 8.0 / ANSI C
    1 e- C) B- D' i0 i& I& x6 v
    6Description : Demo the how to convert int to const char *
    4 g9 Q: N- y* K: x' D5 \
    7Release     : 01/06/2007 1.0
    ! g# i8 y) a8 z
    8 ExpandedBlockEnd.gif */. ?2 R6 F+ _- e' `' h1 h3 j! {8 E
    9 None.gif #include "stdio.h"
    / r3 z8 }  Y7 o2 ]" Q  u10
    . q, {- \9 P" q3 T$ z: I
    11void int2str(int , char
    / q3 q2 s9 R/ l, ]5 `4 ~6 O( x" S7 B*);( U+ H: N' t. K/ W
    12
    - X) A9 y4 X( m9 m# H6 m9 w& C1 R
    13int main() dot.gif {* _& `$ z  r& h7 v- @
    14  int i =
    ' U- v0 d% a8 c$ m123;, g0 ~( Z' x, b6 F5 H3 _* n5 _
    15  char s[64];
    ; z" c/ ^% [+ X+ }: f
    16  int2str(i, s);7 Y+ K% d: c2 Z, B4 `$ X
    17  puts(s);5 T0 o7 J) a" O8 L; c* o& n
    18}
    ' B9 L  }/ S# y2 @19, B  E  P' u% Q, Y  _7 m1 _
    20void int2str(int i, char
    4 K$ u+ x8 e# L*s) {$ I5 h/ h& S5 z
    21  sprintf(s,"%d",i);
    8 a2 t% {9 p6 @! I1 X( r' R
    22}

    ' s6 L5 Q4 g1 ~& F; N% C2 i6 t8 b9 L8 r' b# |

    . H& K! v! a7 @$ E& k2.若用C語言,還有另外一個寫法,使用_itoa(),Microsoft將這個function擴充成好幾個版本,可參考MSDN Library。0 O3 M# J/ x( B7 M0 j# W) d
    1/**//*
    # H2 H0 ?% i" S 2(C) OOMusou 2007 http://oomusou.cnblogs.com' ?& u! d# g1 A2 }, \
    3' Q9 k9 d0 o0 K9 }  x6 n+ m0 d& ?8 K
    4Filename    : int2str_itoa.cpp6 ]0 w5 U9 c9 C  F9 v: w6 Q
    5Compiler    : Visual C++ 8.0 / ANSI C
    / d: N7 \% E7 U  o
    6Description : Demo the how to convert int to const char *" a+ \. E) y$ O) Z; B9 j: Q4 x6 ]
    7Release     : 01/06/2007 1.0
    " e8 Y0 z7 V3 J$ ^! \' i) w7 r  T5 N
    8*/
    7 |2 n, w4 ]8 T6 g7 K 9#include "stdio.h": B5 }: q/ `6 `4 k3 C8 L
    // puts()' I3 b" x' m3 B6 b
    10#include "stdlib.h"
    3 E3 d$ Z1 G; x' y2 k3 V// _itoa()
    $ c3 P5 p, a! G! v11/ Z! W1 ]8 F' X% |
    12void int2str(int , char
    0 G+ S+ k& F& B' D" c( g*);) d" J5 V1 N' N) ?7 Z" [
    13
    3 d9 V4 N1 L  e  c( |0 ?
    14int main() {1 d7 W" b2 F. P" }) y
    15  int i =
    / z- ]. c) Y% V' u2 k* T123;
    . G5 l, W9 u0 E; H$ M! B
    16  char s[64];- D2 ~5 s+ b* n  O2 p% W) i& }: ?
    17  int2str(i, s);
    ' K' v" _' y& x& H2 k8 L3 x' N9 t
    18  puts(s);
    & R+ ~5 m, r2 ]& U
    19}" c- M' y& C! j+ P  w5 R8 d' ^
    202 ^* @3 m3 ^* q
    21void int2str(int i, char- j! j- y( o6 h/ L, f# ^! v$ Y
    *s) {) T$ o# q1 V' X0 r1 Y9 k
    22  _itoa(i, s, 10);4 J# l2 Q, \6 W& e7 J0 e& |$ Q5 N
    23}
    % d9 T1 d+ w- m( b# T/ p$ Y  }

    & m4 N2 }+ o+ i3 o3 w8 t4 {, a: V; w. G2 N# {9 P5 W9 u
    3.若用C++,stringstream是個很好用的東西,stringstream無論是<<或>>,都會自動轉型,要做各型別間的轉換,stringstream是個很好的媒介。
    6 j# o  F, l4 k 1/**//*
    " c: ?8 Y! i: w: K4 H1 N; N 2(C) OOMusou 2007 http://oomusou.cnblogs.com& a6 j5 L" |/ d+ w0 C0 R8 X4 V
    3! K. [0 L/ O0 t. M' F: m1 n1 p: k
    4Filename    : int2str_sstream.cpp
    $ A2 Z+ t* n5 p+ R
    5Compiler    : Visual C++ 8.0 / ISO C++2 a: l. R4 I% T0 B
    6Description : Demo the how to convert int to string3 [5 l* ~' I; v6 ?( M
    7Release     : 01/06/2007 1.0
    ! _! p: {. Y5 L
    8*/8 B0 m) M, W6 E4 J( F) P2 M- W$ e
    9; u! d5 U: L( [! g( S8 j9 K
    10#include <iostream>
    & H+ H5 D* u5 v6 j" F# G11#include <string>& A9 B( [* D! A) [9 z. d5 E9 N
    12#include <sstream>
    ( `% F  j" N6 R0 x13) e5 r) O. \: X7 A) [
    14using
    $ E0 b$ l% z1 h) }, K4 g# O  W  Znamespace std;8 j+ ]1 K8 K2 c- V" v
    155 S+ I- H/ }) o
    16string int2str(int &);
    & F. ?! L0 x5 K1 A
    17" U, U  q& d- d  }/ I" N
    18int main(void) {  u/ E/ U$ O/ }# o
    19  int i =
    6 {& b5 _3 r( {. {123;
    $ d- l( M) D% B. [9 w
    20  string s;
    ' ?; K/ R  ?/ U# v+ R6 N8 n
    21  s = int2str(i);
    ! }. k7 b+ B7 G+ `
    22
    4 c$ L7 V# f. ~4 Z! I, [
    23  cout << s << endl;
    ) S3 }9 ?- v+ i
    24}/ z8 Q" H4 i2 ?  `+ x4 ]. d0 N
    255 k' }  `( `8 }
    26string int2str(int &i) {7 y: N  w- ^% ~8 K7 ?
    27  string s;
    6 z: q6 U4 R' ]8 Y4 a! z
    28  stringstream ss(s);
    # O. {6 q- h, k2 Q
    29  ss << i;, Y. y) t9 n  Q% g# k
    30
    4 ]4 m5 e; y+ s8 Z, k
    31  return ss.str();* R+ {' P2 B0 U8 [
    32}
    0 b% q' u8 I4 O% y
    + p5 Q. x  n4 \  U0 v
    " h% l- l. n" v6 z3 Z' C' W
    4.若用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-3-19 10:40

    Powered by Discuz! X3.5 Licensed

    © 2001-2025 Discuz! Team.

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