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

 找回密码
 立即加入
搜索
查看: 2201|回复: 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函數,這裡提供幾個方式達到這個需求。
    * I  }$ ^/ n, f1.若用C語言,且想將int轉char *,可用sprintf(),sprintf()可用類似printf()參數轉型。 1 ExpandedBlockStart.gif ContractedBlock.gif /**//*
    ! h0 u; p  ^4 ~" ` 2 InBlock.gif (C) OOMusou 2007 http://oomusou.cnblogs.com
    , j  B' z+ @& F7 ~ 3
    ! u- R  T1 q* g
    4Filename    : int2str_sprintf.cpp
    0 I* N# J! c4 s4 t$ d
    5Compiler    : Visual C++ 8.0 / ANSI C! ], k. u5 c2 r  H
    6Description : Demo the how to convert int to const char *
    2 ^/ U2 r& m* U6 |. F9 O# g% }7 D
    7Release     : 01/06/2007 1.0
    & F- e# B6 ^1 N+ W  H- m5 D
    8 ExpandedBlockEnd.gif */
    ! o4 y% u* a0 t. i; F 9 None.gif #include "stdio.h"
    # a% H: Z) ~9 i! D4 f1 y10
    ( c: k8 I2 R$ c" W# o2 q0 l% f: |* t
    11void int2str(int , char# H' D( O/ Q, ^; S0 b0 D9 m+ ?
    *);, D- P7 D; T: h
    12
    , T& r, n9 D& w* z/ O
    13int main() dot.gif {
    7 {! w+ Q" ]1 L" c
    14  int i =& r7 ^! f* O$ s  W. D0 _
    123;
    ' B" j& K' X' z& X4 e5 K( ~
    15  char s[64];
    ' a  P! i4 U% h$ s0 K% ]
    16  int2str(i, s);
    3 E9 C7 N7 l2 Q9 c
    17  puts(s);- ~: ?9 ~* @$ @+ g
    18}; l+ n, E( @: s; ]2 x; ^+ }. [
    19
    7 R/ ~) B5 |1 `& ~6 Y: B
    20void int2str(int i, char/ ]9 w: D* l- p8 v+ y& j9 `6 a8 E
    *s) {
      n0 r7 p# f3 J" V3 X
    21  sprintf(s,"%d",i);+ ]/ O- ?) W( @
    22}
    - a% I3 B, I+ ^, O4 i& H3 V: c5 M

    ! }# B4 y0 J, v, ~& |3 h) s  [. ?7 r
    3 m4 ?6 C, R9 N% u# G2.若用C語言,還有另外一個寫法,使用_itoa(),Microsoft將這個function擴充成好幾個版本,可參考MSDN Library。9 L" }$ L6 ~& x1 l. f: L* Y$ Q
    1/**//*+ r% r( D5 n6 U9 w9 g, A
    2(C) OOMusou 2007 http://oomusou.cnblogs.com$ O# j% Z$ a  e* Q5 Y# x% }
    3
    ! B6 t3 m/ ]* ?4 X
    4Filename    : int2str_itoa.cpp
    * J) m* d2 U# K3 ?6 M6 G' L
    5Compiler    : Visual C++ 8.0 / ANSI C7 H2 h% l! d. [
    6Description : Demo the how to convert int to const char *
    $ P) x  n1 |# I3 Y4 C: H( l
    7Release     : 01/06/2007 1.0* _1 F$ z' d9 D& ~5 c  _: M
    8*/4 o9 I) |* S7 J  }- l  d5 S
    9#include "stdio.h"9 a' f/ \' X0 m" ]
    // puts()! X% u1 @( L' k+ P8 r. R, l' M
    10#include "stdlib.h"
    ) X* j5 c2 ~" R! ]// _itoa()
    , Q5 z" F4 f1 P/ b/ b2 e1 w111 e5 G# o' B% |1 e/ ?
    12void int2str(int , char% p! c0 N1 A/ j( j
    *);6 A2 v4 O5 b  _$ d
    13
    0 w. g# A+ o  S) L' [3 E9 U
    14int main() {1 P0 H6 j4 N9 b, v; ~! v. l
    15  int i =2 P; C6 L3 W9 g
    123;
    ( Q3 f. V  i' e  z6 r
    16  char s[64];
    " r6 f3 J  Z9 ~1 ^" u( n
    17  int2str(i, s);
    ' P! h. p) R4 X+ v; c& z
    18  puts(s);
    ; g$ f7 B1 D) L6 I
    19}
    $ f2 T0 W+ Q7 ^/ t: t, D20
    " Z: X7 e' @/ ]( l: [
    21void int2str(int i, char
    4 u* H4 p- `- f*s) {
    1 `/ x  p) W5 g9 j9 x% F
    22  _itoa(i, s, 10);
    % }- D8 E0 |8 d8 V( w9 X! w
    23}

    % M* v/ f; T7 Y! u, P& m6 G  \5 V8 q

    ! M3 I/ @+ M/ r' D  c3.若用C++,stringstream是個很好用的東西,stringstream無論是<<或>>,都會自動轉型,要做各型別間的轉換,stringstream是個很好的媒介。. L: X6 T0 b8 f* G0 r7 A
    1/**//*
    ; ]9 k- g+ P9 Z/ n3 z6 y 2(C) OOMusou 2007 http://oomusou.cnblogs.com" U1 l- z  O- l8 T% K0 C
    36 v. a- U/ X4 O  |3 B  O0 G6 t
    4Filename    : int2str_sstream.cpp
    + O) J/ M. S+ M( u; G: D
    5Compiler    : Visual C++ 8.0 / ISO C++
    6 u- K4 F  z) u: g: f
    6Description : Demo the how to convert int to string
    - ~! P1 L$ d% m8 `
    7Release     : 01/06/2007 1.0
    % t/ Z! |& u1 P
    8*/. G6 R7 x& K$ A$ |; T7 O
    99 F" G: `6 s+ ^5 [
    10#include <iostream>; P7 `5 |9 V4 F0 B4 P4 W3 P6 v
    11#include <string>
    ; y9 S: K7 D: l8 b% [12#include <sstream>1 X% z7 t3 s0 Y- Z! G8 T" }
    13  [9 ]3 [0 w  L. s: I' L+ ~
    14using
      P: v. N: ?& y' J6 rnamespace std;8 F5 x, I6 ]% v
    158 I. [4 \  {+ X" t: t, F/ ^
    16string int2str(int &);
    6 V8 }9 H! c# x- t4 Q
    17- Y& |! z, o* X) T; t% J/ {* K+ n. B8 f
    18int main(void) {
    # ]1 }/ _2 X9 ~, V
    19  int i =
    ! i; [8 B" Y0 s* u123;
    ' C& S6 Q; _/ {, p* ^6 l$ d
    20  string s;
    0 s0 W$ `6 l' b0 [' h2 a
    21  s = int2str(i);
    # u% K/ Q( x# ^9 m- F. P  j
    22% B. z+ V2 [: M. C1 Y6 e
    23  cout << s << endl;. {/ ]$ s0 ^+ x! i1 a
    24}) [1 G* l# q2 M! s) `+ c) @" R
    257 h& s& h7 H3 G1 H5 L
    26string int2str(int &i) {
    " m2 N* A& V9 o9 m3 b+ h# W, g' |
    27  string s;  G/ h1 L* y) t4 A. ~
    28  stringstream ss(s);; R) C5 y6 z3 ~% ]' F% x; r
    29  ss << i;- S3 ^: ]; I  l0 o/ R$ {
    30
    ( K# i  t  Y! ~, D2 F
    31  return ss.str();
    " }7 M9 j6 k) A/ a5 |) n
    32}
    0 R2 C8 J' k+ S
    & i# n4 I* K9 d! i) H$ u

    7 G! x$ b4 V$ Q# F" x. y4.若用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-30 18:07

    Powered by Discuz! X3.5 Licensed

    © 2001-2026 Discuz! Team.

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