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

 找回密码
 立即加入
搜索
查看: 2105|回复: 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函數,這裡提供幾個方式達到這個需求。% \$ Y& \/ h: X& \- i
    1.若用C語言,且想將int轉char *,可用sprintf(),sprintf()可用類似printf()參數轉型。 1 ExpandedBlockStart.gif ContractedBlock.gif /**//*+ v. R6 B# V1 \2 c: F7 w
    2 InBlock.gif (C) OOMusou 2007 http://oomusou.cnblogs.com7 E; L- B) }1 f0 ^
    3+ D: @* z7 Q2 C* V
    4Filename    : int2str_sprintf.cpp
    # S. X9 p% T( B- f0 K6 v. r
    5Compiler    : Visual C++ 8.0 / ANSI C/ s9 d5 Y* c2 |) T
    6Description : Demo the how to convert int to const char *& t+ H( N  U" J5 J; x
    7Release     : 01/06/2007 1.0
    7 c+ L" x0 P2 C7 `6 s# h
    8 ExpandedBlockEnd.gif */
    3 F8 t+ [0 b' _2 ~, T 9 None.gif #include "stdio.h": }' D8 H  q! O9 S2 D! t- c- V
    10) p5 B) V. }6 o, b
    11void int2str(int , char
    ! F5 S3 \. v3 {9 ]*);
    ' `! n* M; R$ o7 r" _' b0 g, ~
    12: |* d# `/ P/ I
    13int main() dot.gif {7 }* I2 M: S/ o# M  U: k
    14  int i =
    7 f/ B2 R7 p+ h1 w, Z* r5 q123;/ }9 @  |. z+ Y1 P# }" n
    15  char s[64];6 O# d  E4 r2 l  s
    16  int2str(i, s);
    . L* ?8 P' F0 Z( w; z9 Q
    17  puts(s);- ]% H( s# |% W6 r* F! U. t3 S
    18}! s6 `" d: z/ a/ p' X
    19
    0 y! _7 _- [" _- t& _0 e
    20void int2str(int i, char
    ' M- F! N* G( U& r$ D. c*s) {9 o, z) `  {3 r3 T: u
    21  sprintf(s,"%d",i);8 B# J9 K6 h" [# m) U
    22}

    % k  _5 i! F) g6 \
    + V1 I% |' E! l' P
    7 F7 g. Y# m9 Q2.若用C語言,還有另外一個寫法,使用_itoa(),Microsoft將這個function擴充成好幾個版本,可參考MSDN Library。& e& D: G+ X8 J& x3 ^& |
    1/**//*
    5 A: h: j5 I/ ^; @7 E+ \ 2(C) OOMusou 2007 http://oomusou.cnblogs.com% A$ u4 b4 e" p0 n! t2 X0 G$ U: c$ w  ]
    34 v( s0 F, T- a+ F+ v
    4Filename    : int2str_itoa.cpp& S/ I- V) w) Q. m* `
    5Compiler    : Visual C++ 8.0 / ANSI C# Y" I3 s8 s4 \
    6Description : Demo the how to convert int to const char *. Y6 q3 F: q3 v$ G
    7Release     : 01/06/2007 1.07 C) w. A: ^* k. }6 H
    8*/
    / q# A& w7 T# Q. z! o- N/ e' f2 P 9#include "stdio.h"* l; F+ }' K% Y) M" L3 Z
    // puts()
    ) a  x" ~# t& U10#include "stdlib.h"
    * }' j8 p& l1 ]) x" d8 h// _itoa()3 Q+ M9 y+ b* o
    11
    : K- ~$ H+ d- N& `0 ?12void int2str(int , char0 {+ e' p, b+ _
    *);% A# j( D- G$ ]. k4 E
    134 y( `& s# ^3 R# F6 ?7 R0 K
    14int main() {& C+ l+ c" L+ {) E
    15  int i =- L2 o- q3 v2 K, ?# n9 @
    123;9 G) w, m# q  p; P2 U* m
    16  char s[64];
    , i4 j/ M: H" \1 M0 e' ]
    17  int2str(i, s);
    ' ]0 Q2 [8 @' J! j8 Q& M
    18  puts(s);
    % }/ J6 c! K& a( d' @9 a6 ~
    19}( }+ t- X- j9 |) m& ]7 c
    20
    ) j' w0 R0 D1 X6 E8 s
    21void int2str(int i, char. s* {, Q0 S4 g7 @+ R2 L" `
    *s) {
    ) Y# W; D- ?4 F, s7 I; ]( I
    22  _itoa(i, s, 10);
    & d) z/ I9 A* b6 A3 v+ I, Q
    23}

    " y5 @, N1 g! U- n7 T$ |+ W# }+ K7 H* e
    6 U6 p& V9 H$ s9 a* u! ^9 @
    3.若用C++,stringstream是個很好用的東西,stringstream無論是<<或>>,都會自動轉型,要做各型別間的轉換,stringstream是個很好的媒介。$ P, J4 q* r% j
    1/**//*
    + U3 w4 C) a' [3 {" v 2(C) OOMusou 2007 http://oomusou.cnblogs.com
    $ ]; w1 n+ Q6 V# v: L) p 3% {/ N" ]+ E+ N! S/ o
    4Filename    : int2str_sstream.cpp+ D# n8 q8 I, h: L/ {' {
    5Compiler    : Visual C++ 8.0 / ISO C++0 ^8 A* W* P/ V( c, }$ q
    6Description : Demo the how to convert int to string
    & N. C9 Z+ P/ ~
    7Release     : 01/06/2007 1.0& T! v% }" {+ b  ]* ?* f1 e3 q3 z
    8*/
    ( V" Y/ v5 d: {- q0 G# D' m  Q 93 J. r  a! Z, H2 n/ S
    10#include <iostream>1 l! w; I) z3 q9 k: x& p2 f
    11#include <string>$ `" M* t0 v! Y$ M4 T. F
    12#include <sstream>
    $ w0 ~6 m8 u' L8 [& V' E13
    $ d% z! l1 \, l. n2 q, V" n
    14using
    % X# L% y2 l# X# t) [! I& j& rnamespace std;  ]; ^( u( N" E6 s7 C
    15
    ) c/ n& L- B) V: m
    16string int2str(int &);
    ! a! \5 A9 \8 m
    173 @5 E: j. o9 j; z! x' W
    18int main(void) {
    % e' J, g5 w$ W
    19  int i =
    $ Z% m& J) X8 a& A/ Z: T' V; @123;
    # T" ]5 j5 l' ?$ p( p; v9 ~
    20  string s;
    % m5 m: [& K4 L
    21  s = int2str(i);
    ) ]) E  h+ i$ O
    22
    % {, b! S* k, ]: d
    23  cout << s << endl;
    8 E+ E$ O' X- P9 \, U
    24}
    3 }  _# b* o- E  [% q2 ~6 i257 q# X) ?1 [; H: Z% w1 }
    26string int2str(int &i) {
    6 D0 u' }$ B0 C, @1 V1 B
    27  string s;
    , B! M  m3 i7 D3 l) r
    28  stringstream ss(s);7 ~9 Y( r, q- o" U0 p
    29  ss << i;3 U6 c, [- s& S- {# \
    30# H2 F* ?7 S- ~, F6 X& M
    31  return ss.str();+ c4 L3 \5 b0 G
    32}
    * s2 A4 Y' P  e) x. {  j7 y- V# q

    ( L8 c" f" c' V9 o" \; y' o* C: q3 C3 S0 \5 Q
    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 09:37

    Powered by Discuz! X3.5 Licensed

    © 2001-2025 Discuz! Team.

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