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

 找回密码
 立即加入
搜索
查看: 2041|回复: 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函數,這裡提供幾個方式達到這個需求。
    : W! h& e; j: \" B4 }; j1.若用C語言,且想將int轉char *,可用sprintf(),sprintf()可用類似printf()參數轉型。 1 ExpandedBlockStart.gif ContractedBlock.gif /**//*
    4 {- d- J1 F9 ^' S% ~' Z) @ 2 InBlock.gif (C) OOMusou 2007 http://oomusou.cnblogs.com/ d6 s+ |$ i5 w7 ~$ b: q6 j& f+ u
    3
    " ?; }; O" |2 {  C3 F
    4Filename    : int2str_sprintf.cpp
    1 g7 p$ Z! |+ G$ s( d* H: C( i( `
    5Compiler    : Visual C++ 8.0 / ANSI C
    - E% `6 n4 h3 |0 k3 e. M
    6Description : Demo the how to convert int to const char *
    9 i9 d2 o( Z" w6 F2 g
    7Release     : 01/06/2007 1.0
    # C/ v8 n" r' j$ q9 ?1 u! D% _
    8 ExpandedBlockEnd.gif */
    4 |: J& z9 N9 I5 h; n) p: a 9 None.gif #include "stdio.h"
    4 a: [: D+ e6 \7 p  G100 O' X! {3 h/ W7 D
    11void int2str(int , char
    ( }% L9 n) ]7 c*);
    # X, d& |! R9 |( p0 J, Q
    12
      Z* q# i7 ~) O" S0 o" x
    13int main() dot.gif {
    . g: o# k- A" o; a4 ~
    14  int i =
    + e7 t  ^4 f8 Q8 r6 M/ |" P* b) u0 ~123;3 N$ h+ Z/ D: g! I' S0 D+ l# B) V
    15  char s[64];
    4 l  w" i  ?5 T: ^' F4 y  A! G/ q
    16  int2str(i, s);. S7 c. J! F0 X' N
    17  puts(s);& d& Z4 s: N" i
    18}; w. F" [9 T( H6 W
    192 W2 G: L# f( E3 _; H
    20void int2str(int i, char( |/ y% @( @7 W
    *s) {) _. Q2 ?; H& k. ^
    21  sprintf(s,"%d",i);, e8 L  t) ~3 v1 |3 y, h
    22}
    6 D+ L! W5 f3 ]) X; e& w1 c

    * l1 \8 K$ h8 O& |0 H* @1 b
    3 B: I8 @5 ?+ m7 t  U- W2.若用C語言,還有另外一個寫法,使用_itoa(),Microsoft將這個function擴充成好幾個版本,可參考MSDN Library。
    # t8 Q0 J" r+ q" u 1/**//*
    ( Y2 d6 S5 ~! }2 M2 j 2(C) OOMusou 2007 http://oomusou.cnblogs.com
      _, K4 F" i9 r- C8 a 3# W& l9 D2 Y. f4 ]* o
    4Filename    : int2str_itoa.cpp
    & _. b3 D8 ^! t- J
    5Compiler    : Visual C++ 8.0 / ANSI C/ r8 p7 e: r  v; w! }5 u; l
    6Description : Demo the how to convert int to const char *5 L/ u6 L& M$ j  A
    7Release     : 01/06/2007 1.05 p8 j. f2 M0 H! N) q) h, G
    8*/! X$ k" |) D$ r; O  ?
    9#include "stdio.h"
    : h" i3 @# W1 T+ E; u3 ~// puts()
    ! i3 Z1 T3 @7 U; f$ B6 _( i/ [8 B10#include "stdlib.h"
    2 q9 R; U# S# O// _itoa()! z' {: c) L" M2 {! R: [% `
    11
    1 p2 L" c0 d3 G! [8 c12void int2str(int , char: {) Q& u1 @0 H1 p( R2 R( `
    *);) H0 A7 y5 J# k3 j0 x' U' ?+ _
    13
    ; C* u1 o1 C( I& k2 e7 J" V) b! l
    14int main() {
    # y9 \; M+ z# T
    15  int i =5 d# C7 }; ]& U0 d9 u- V" _  Y+ x
    123;0 h$ h: z" j! C5 b) V/ [) ^
    16  char s[64];
    7 P# _7 ~, ]# q& S# }
    17  int2str(i, s);
    - m1 d8 f( |% V% }+ Y! N! L
    18  puts(s);
    # K' w8 F: l1 R( e0 G" h  G
    19}
    . M1 N8 m2 p  A. K, X20& v! z4 N: j1 T
    21void int2str(int i, char' y% L" q& D: I$ I" M: V- h
    *s) {
    * r9 k/ r0 ~, c% P' V1 H8 u
    22  _itoa(i, s, 10);6 P- l8 R9 r: H: Y  n9 g5 @
    23}

    1 N6 c" B; ^2 S+ t/ e+ r$ b# u" B. @$ X( H7 G
    ; h/ E( Y& W, h4 m( o2 |- ?
    3.若用C++,stringstream是個很好用的東西,stringstream無論是<<或>>,都會自動轉型,要做各型別間的轉換,stringstream是個很好的媒介。7 i  {2 H( x  V# `; C
    1/**//*0 E0 a$ V, R1 J! _
    2(C) OOMusou 2007 http://oomusou.cnblogs.com1 T% r, Q) [7 [6 W7 K
    3
      |4 p' N6 o4 F  ?! N
    4Filename    : int2str_sstream.cpp
    - @- \7 \6 u, T4 B' N
    5Compiler    : Visual C++ 8.0 / ISO C++
    $ B' i. B1 T! P" h9 A
    6Description : Demo the how to convert int to string
    1 _) r9 ]# u" r  H; I6 X6 _. j
    7Release     : 01/06/2007 1.0
    ) u- K: P5 J' z! f6 w: K- b
    8*/5 E* m, G' c+ K8 R
    9! {; E( H2 K# b! F6 C
    10#include <iostream>+ m( I4 M  Z+ L6 m  D
    11#include <string>
    3 z2 v# N2 L/ L( ~1 H12#include <sstream>
    ' ~1 H, y' T5 O132 a  f! b/ K5 C4 G. o
    14using
    ) R* X6 I0 F) [0 F1 Dnamespace std;
    7 N9 {9 t1 x3 S1 m+ }1 z
    15
    2 [# M) M2 A3 k# R
    16string int2str(int &);
    0 K2 j$ ~' a# h" R6 R
    17
    8 `0 e2 y/ ]" i, `
    18int main(void) {# u0 n6 T5 ?% a0 v$ R$ d
    19  int i =
    3 p% r, t, r& q3 e123;* f( d0 V7 G& V
    20  string s;
    9 x7 t& W& X* q3 w6 J' l
    21  s = int2str(i);9 F  L+ M' m2 S
    22( L* N9 E3 ]* w
    23  cout << s << endl;
    $ a( w  D! Y. {, g- D
    24}& l+ G6 J4 T( |+ ?& m$ q
    254 R5 [4 f8 C) X3 e7 s
    26string int2str(int &i) {) g6 }4 U% K/ |. B
    27  string s;, [+ F1 {1 |3 I$ _7 }
    28  stringstream ss(s);" \+ T. t& g/ C/ l
    29  ss << i;9 z/ v$ J% p3 Q; t1 g+ F
    30/ _, s# M3 b. H  Q" W
    31  return ss.str();9 Y. N4 F! k5 ?5 Q( l+ }
    32}

    / M" F" Q( s1 J7 M3 D% A) R( B$ O. U. S' q7 K/ I
    6 i/ w0 N3 R  \4 v- h, x
    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, 2025-6-13 16:15

    Powered by Discuz! X3.5 Licensed

    © 2001-2025 Discuz! Team.

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