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

 找回密码
 立即加入
搜索
查看: 2174|回复: 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函數,這裡提供幾個方式達到這個需求。
    , ]3 r' g- v+ }% S. N1.若用C語言,且想將int轉char *,可用sprintf(),sprintf()可用類似printf()參數轉型。 1 ExpandedBlockStart.gif ContractedBlock.gif /**//*6 E+ @: \5 Q& E2 ^* ]! O7 j
    2 InBlock.gif (C) OOMusou 2007 http://oomusou.cnblogs.com7 y& i: Y( H- a& H8 v  u
    3
    % O. b2 o/ n+ Z* z6 w5 r
    4Filename    : int2str_sprintf.cpp1 m4 C5 H9 l- h$ J- g5 i# N/ q7 y
    5Compiler    : Visual C++ 8.0 / ANSI C
    / Q) S6 S6 T0 f; `0 t4 a. p$ j
    6Description : Demo the how to convert int to const char *' k2 W1 f. i6 q% j
    7Release     : 01/06/2007 1.0
    - P4 k; r0 o" X, Y0 i7 U+ p
    8 ExpandedBlockEnd.gif */
    3 M3 p# A8 p8 x' X0 G8 a; [ 9 None.gif #include "stdio.h"
    " ]5 Z' z6 m+ o3 ^9 @1 l5 b10' c. z  w/ R* M7 C/ V( O- `
    11void int2str(int , char
    5 G! y+ n, p/ X*);
    ' C0 `$ @1 n8 `( [7 U5 b
    12
    : s1 l2 g0 {2 |/ K
    13int main() dot.gif {
      O# `; t0 U7 {0 `' d( c2 K" e& p
    14  int i =
    6 G' J/ p! C6 b9 Q! E# ~123;% O% R5 K& o! P. C5 y3 [8 ]1 J. ]1 D
    15  char s[64];
    2 x7 i# N; B0 r' A/ K
    16  int2str(i, s);
    - v4 a$ P% {2 G- q/ g1 p& X' @
    17  puts(s);
    8 }) N; u9 i" b7 J4 ]5 N' I" |
    18}
    5 A- U1 {" c  J5 M+ l' ^2 C" A9 `19
    : W" s/ x, P. D2 b% v, R3 ~
    20void int2str(int i, char, h: M. g% @, f. S; `3 d
    *s) {5 E( R5 H. V0 I$ e; T
    21  sprintf(s,"%d",i);6 L: n( i2 c* e- ^+ X; s# `6 [* a
    22}

    4 b# q! H8 c0 b- t7 b
    2 B& W2 j5 i: W8 W# ?  y0 \: t& R3 O8 W
    2.若用C語言,還有另外一個寫法,使用_itoa(),Microsoft將這個function擴充成好幾個版本,可參考MSDN Library。2 A0 ~% n3 t2 p3 j, C# p* v% O  l
    1/**//*
    1 m. S! ~4 u9 a/ u! a7 v* i 2(C) OOMusou 2007 http://oomusou.cnblogs.com
    4 G+ N7 M: `$ f/ j 3' {- p. |+ |' J& l4 i
    4Filename    : int2str_itoa.cpp
    & k8 b9 r4 s3 E; K* ~
    5Compiler    : Visual C++ 8.0 / ANSI C: G9 N# \. J# M5 l) w& M' d5 ]" U& y
    6Description : Demo the how to convert int to const char *7 `. R$ w' z$ L
    7Release     : 01/06/2007 1.01 ^' Z* ?: Y! Y1 h! s. ~
    8*/" e+ f/ y6 Z% G. J
    9#include "stdio.h"
    6 o  Q- y( E6 b0 C- N. o// puts()' C/ Q& {7 c1 N, O: Z3 @+ O
    10#include "stdlib.h"  ?$ y  r3 w# ]7 ^! }
    // _itoa()3 l# V2 m9 K4 h* ]/ W/ n1 \4 }
    11
    ! }/ I5 S5 i' u/ [. E& ~1 a12void int2str(int , char
    9 W( |: b  \4 R1 }0 q' e$ r*);
    % ^. {6 H$ n! l- o
    134 J! ?7 E; Q) h
    14int main() {
    5 B9 _  F, G6 r
    15  int i =" T% a4 ?# `* H) S7 [* [$ u
    123;5 t1 l1 X0 G& m
    16  char s[64];1 ?) y: t" |9 n9 J
    17  int2str(i, s);
    9 B; v. a( ~- |6 C0 C: l/ p
    18  puts(s);4 h; l! D' }3 M$ |+ O, M
    19}( _7 H% A/ J9 E4 Q: I
    20
    / U8 b8 t8 r+ q) u# G; }
    21void int2str(int i, char
    1 v# k/ d( c' K" p*s) {  U) O9 y( k0 e. v9 R
    22  _itoa(i, s, 10);7 `. F. ]4 P6 F/ c% {
    23}
    ( Z: A, ]2 C0 N+ D% C4 L
    ! l: q" K, m' P8 g3 e

    . G- a0 o  [- Q% w' A7 {2 V  F/ r3.若用C++,stringstream是個很好用的東西,stringstream無論是<<或>>,都會自動轉型,要做各型別間的轉換,stringstream是個很好的媒介。
    2 D' g, K6 F& [$ T# W- g; E  l 1/**//*9 G; A; ~7 F" o$ @. ?# d
    2(C) OOMusou 2007 http://oomusou.cnblogs.com
    # W3 j& _) G$ P) ^ 34 V- a7 B! v! d# W
    4Filename    : int2str_sstream.cpp
    % q6 f+ I" X$ E, c# w2 ?# w
    5Compiler    : Visual C++ 8.0 / ISO C++
    ; ~, C( t1 @/ r' v2 d% y
    6Description : Demo the how to convert int to string
    ' t  ^1 u% C: i
    7Release     : 01/06/2007 1.0* R+ _5 F1 c7 p  a2 P) d4 O
    8*/
    , z  E* J0 P. z  R 95 H' z  R8 [; v8 s
    10#include <iostream>! g" k; L' w: W) w/ r0 o7 b
    11#include <string>
    $ Y. @. o1 F9 e% F0 l1 g7 y12#include <sstream>5 _2 R+ b2 W6 e) O5 q" h
    135 ?% c; q0 j9 F8 I2 `' K
    14using! a) l7 w( _6 a& f- e% y: ~4 z% ]
    namespace std;( L9 ^' z* L) [% j3 K0 t. ~
    15
    - q+ D$ y! {' o2 O
    16string int2str(int &);: X* b2 m$ a: t
    17
    4 m% B8 R$ \6 H2 ^! }
    18int main(void) {
    1 t& w( a* a* M* D( Z3 }( r: M
    19  int i =+ R$ |; e3 Y# i; R& e6 ?
    123;  `& C, A, E& f. @+ ?0 w0 E
    20  string s;
    2 A) a) w* u  ^, O# Q9 t
    21  s = int2str(i);
    ; [) C$ g! T) y$ E! R
    227 f$ W" H) ^& _! `
    23  cout << s << endl;, p# r' l9 T5 d, z6 D
    24}6 @& B2 Z" d2 N  P& `3 Q2 T; V
    25
    % h% [, c# g& U: `
    26string int2str(int &i) {& Q& C" n) _0 v) a; ^. v' }, W
    27  string s;
    1 ~$ |7 I( Y, W8 B/ q4 L, b6 s2 R# X
    28  stringstream ss(s);
    1 b( o) d' {4 x; L: a3 L; {
    29  ss << i;) B) t) K, B5 B0 |/ B2 j
    30
    + U  d6 w1 R( f( o
    31  return ss.str();) @1 H& l$ I6 e  q( s
    32}
    8 V* d0 ~$ C+ p" ~3 j

    . g& T) d' }( ?7 U7 V; G" {/ F2 ?* I6 m9 z+ Z6 [
    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-10-10 06:30

    Powered by Discuz! X3.5 Licensed

    © 2001-2026 Discuz! Team.

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