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

 找回密码
 立即加入
搜索
查看: 1928|回复: 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函數,這裡提供幾個方式達到這個需求。
    . y3 G0 l/ |: e1.若用C語言,且想將int轉char *,可用sprintf(),sprintf()可用類似printf()參數轉型。 1 ExpandedBlockStart.gif ContractedBlock.gif /**//*
    . o) r0 L  p, W. R6 J. M2 K 2 InBlock.gif (C) OOMusou 2007 http://oomusou.cnblogs.com- o( k/ Y% q9 P% m5 S
    3. ?$ O- a, u) D% Z' _" ]
    4Filename    : int2str_sprintf.cpp
    / I7 J( L3 F' g9 S% }
    5Compiler    : Visual C++ 8.0 / ANSI C7 j2 L4 O! T! x$ m# l9 D5 N. Z
    6Description : Demo the how to convert int to const char *4 ?/ j, C0 P- E# ]8 P9 {0 n
    7Release     : 01/06/2007 1.08 B! M: M4 u$ u- N: q- l
    8 ExpandedBlockEnd.gif */& u; j" {% [. G! G* O
    9 None.gif #include "stdio.h"  m8 @! k9 H: C$ c7 ^: m' L
    10
    5 L7 v0 O2 L/ \5 e% m& e2 ~' P4 f
    11void int2str(int , char  ]/ Y) F6 d$ a" n
    *);
    , u! t) v1 I: N3 Z6 i. n/ y
    12+ J% v" i- E( p/ X8 c7 p% ^! _
    13int main() dot.gif {" t- z2 T6 B% x9 y+ f7 G" m
    14  int i =1 ~9 i2 r/ V2 v/ Q/ W8 H: A  L/ O
    123;- {/ H4 j( m1 J% N0 R3 k) t. k4 n& F
    15  char s[64];
    0 U- E* ]3 P7 a# k
    16  int2str(i, s);. W$ h' A0 k8 N) y
    17  puts(s);3 L* Y- A& s  q' x% t7 X
    18}
      c' _  Q3 r, Z/ J& W( R5 e19
    ! q; i% B5 ^3 ?* S& o' i
    20void int2str(int i, char
    7 O1 I% y. P- P. F*s) {
    " E4 x) {  r$ w( U% J
    21  sprintf(s,"%d",i);
    ! m1 q. K5 `- m, d
    22}

    ; ^5 c: n( ?5 z# d- n, a! Q& M) P( ^5 e3 N3 n. i8 [+ C1 U
    & o$ t8 h" e" c9 |& E) Z
    2.若用C語言,還有另外一個寫法,使用_itoa(),Microsoft將這個function擴充成好幾個版本,可參考MSDN Library。
    $ h1 w1 i2 c4 N' y/ p: | 1/**//** e. i8 \0 `3 Y% }! T+ f9 k1 N
    2(C) OOMusou 2007 http://oomusou.cnblogs.com. p$ a. W, P+ y/ m+ f6 }) |9 `) S
    33 _% w5 c# Q3 L, D% u, Q; v& Q& S, B
    4Filename    : int2str_itoa.cpp
    : H2 ^7 g. Z  r6 Q/ k- t
    5Compiler    : Visual C++ 8.0 / ANSI C
    ; \  }0 \! L+ Y$ P! v7 }+ V
    6Description : Demo the how to convert int to const char *1 f. E& O5 J5 F/ _
    7Release     : 01/06/2007 1.07 b# q- _( W4 C* y6 G+ v! m: ^* f
    8*/
    ) v% ^1 M! `4 {/ ~! n 9#include "stdio.h"7 G- ^& }# j. U3 y
    // puts(). R) G; Z7 K, r0 x+ o; R
    10#include "stdlib.h", Y' n. x8 i( [* k' m6 ]
    // _itoa()
    4 J( C' ?. o- G! h+ v0 E115 k9 }8 Z' {8 k
    12void int2str(int , char9 t0 o. n  r( k1 u4 [
    *);
    ( h; A) m0 f$ O1 Q
    13
    0 P9 G; n$ r, J! j
    14int main() {
    # e/ g" h* s6 H3 z# ]
    15  int i =
    / B1 ]8 G. }# b& R0 i( R' B. G123;. ?+ v* ~2 P0 U7 O
    16  char s[64];0 D& P7 Y( i9 f2 \9 M
    17  int2str(i, s);6 G/ C; n/ D+ \" m3 M0 m' _
    18  puts(s);
    + X! R# A, _% F8 [* E1 f
    19}* P/ `. _+ r# W* C) V
    20
    9 z( ]5 [( R7 C- f7 u
    21void int2str(int i, char: t5 e/ \; n$ ~2 v; |. i" D3 b2 a
    *s) {
    : I# U8 `5 Q6 {- B8 Q! n- \* p2 O. g
    22  _itoa(i, s, 10);3 c; H3 e7 G7 U4 Z/ A2 [: j' ?0 y
    23}

    - \  ^+ C" G8 ^. U: T
    5 u- h5 S( W" {  D3 \" d9 q' o  Z  L) B& b0 n
    3.若用C++,stringstream是個很好用的東西,stringstream無論是<<或>>,都會自動轉型,要做各型別間的轉換,stringstream是個很好的媒介。
    0 D( X( ~: s+ }% M: q  k# c 1/**//*0 Z+ E. D- N* N  _  h# t  m* @5 d
    2(C) OOMusou 2007 http://oomusou.cnblogs.com4 V! S8 V% d9 I% D  M# A: {. ^
    3
    ; L# j3 V( u+ c! |4 o# a
    4Filename    : int2str_sstream.cpp1 T7 F* ~- l6 ^  I; z: Y! ~
    5Compiler    : Visual C++ 8.0 / ISO C++
    5 j- Q2 }* t# `0 m) `$ I* U) ^$ N# o
    6Description : Demo the how to convert int to string2 D" {2 Z7 W' y# Z( U. B1 a$ y
    7Release     : 01/06/2007 1.0- a9 W1 r( ]% J. y
    8*/
    # [% x3 {/ j, e1 d0 f& d 9/ s. p+ C0 B! C+ ?
    10#include <iostream>
    * T1 g3 A- j$ V+ F' K1 z! B11#include <string>/ s9 Q1 ?5 s& K( Z8 e/ F0 h2 m
    12#include <sstream>
    % O! `5 S2 d  Q$ o- j6 T1 o& A13/ m4 O6 R) Z1 _3 G1 u, k% g
    14using
    : ^2 d  e& G" d1 z8 Onamespace std;
    & I/ U6 I; g/ I+ ^
    15# y4 X  @- E5 @+ g; z. ^1 J
    16string int2str(int &);6 v' z  y( G" p# B$ \1 \
    17
    $ `6 E# T* I# O6 B2 m
    18int main(void) {
    - p" P- J6 [5 \6 A& O( a& _: C
    19  int i =# \9 b  O% _8 T" V' D) J/ i
    123;! S8 i) l' P) \7 A8 f" T  X
    20  string s;
    $ W  x( b0 h( Z, ?8 o7 J: ^2 u4 Y
    21  s = int2str(i);
    . N( y' R0 o  ~8 C" p& A
    22
    / T. Y& w( X* F* N3 g# u
    23  cout << s << endl;
    6 o0 G; z* z- b$ R7 w) u
    24}! N5 r8 M3 A, `& \" J" X! ]
    256 D% |' j4 p4 z: B+ `  F
    26string int2str(int &i) {8 X. S+ b* f+ i
    27  string s;
    - j, p) Z4 p  x7 A! k
    28  stringstream ss(s);) g2 r5 }) f1 Y* d! U, u
    29  ss << i;- F7 w; l2 n3 Z# M
    30
    + `  I. \3 O0 d( |0 H3 _
    31  return ss.str();
    ) v- c! B. c" \8 g( I
    32}
    / k# X& o% O) S
    # ~* P& q/ w# C3 S" d
    $ t) W& w8 ^3 k" B' M' {
    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-4-20 10:29

    Powered by Discuz! X3.5 Licensed

    © 2001-2025 Discuz! Team.

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