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

 找回密码
 立即加入
搜索
查看: 2102|回复: 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函數,這裡提供幾個方式達到這個需求。
    ( p( d0 I6 \# r% Q1.若用C語言,且想將int轉char *,可用sprintf(),sprintf()可用類似printf()參數轉型。 1 ExpandedBlockStart.gif ContractedBlock.gif /**//*
    - b+ [  q" D9 D2 X6 ]& B5 i" } 2 InBlock.gif (C) OOMusou 2007 http://oomusou.cnblogs.com
    / G. M. j9 I+ j 3
    1 K- I4 y& G8 J" `
    4Filename    : int2str_sprintf.cpp
    8 V' J5 l/ g$ d9 }8 T  Z5 ^+ ?  D
    5Compiler    : Visual C++ 8.0 / ANSI C; I, P7 y& `9 L% J3 |- h/ V
    6Description : Demo the how to convert int to const char *
    + j! S2 L: N9 M. W& \3 s5 Z$ c
    7Release     : 01/06/2007 1.0, X$ ^$ q: T6 M
    8 ExpandedBlockEnd.gif */
    7 I$ l& \, Z) O' `4 C 9 None.gif #include "stdio.h"
    & a3 \) @/ g" d6 Y4 |10+ J# c+ F( G; \% |) K
    11void int2str(int , char+ ~( G3 n& A/ S7 r
    *);& E& d3 Z5 V1 i- O- X3 P
    12
    / A, Y1 S0 t0 Z& M9 `( E. G
    13int main() dot.gif {, E* W3 G/ `8 o4 [- b* ]
    14  int i =8 [% G5 |2 C1 w4 `
    123;& \! E6 R1 t9 b; C5 y1 X" ^' s% ?
    15  char s[64];, X+ K# F- J% k& G
    16  int2str(i, s);) K" F% e) ?( j6 f" [
    17  puts(s);- p9 t( H( ~4 m* z7 l( ^; {
    18}) v6 y# d$ [* V. s( I$ d8 r
    19
    $ Z% p; V7 k5 b  M- i) g5 q* Q
    20void int2str(int i, char, Z( {* r5 [4 H. G! {* E! X
    *s) {
    1 L! ~6 ^: N. d% d6 p1 N1 j0 O' y
    21  sprintf(s,"%d",i);
    % Y6 g: x7 y" E! j
    22}
    & |5 a& M6 d  o7 E5 w) W
    ! g' B5 m. |% f6 D7 K3 E
    4 V8 Y8 F7 c# `) ^* V
    2.若用C語言,還有另外一個寫法,使用_itoa(),Microsoft將這個function擴充成好幾個版本,可參考MSDN Library。) n  V$ ]8 w8 [/ o& R" e
    1/**//*
    - q+ d! [$ ]4 U 2(C) OOMusou 2007 http://oomusou.cnblogs.com4 y- D2 B+ k& j* I1 t
    3; ~$ c3 r5 E" ^, j4 i2 u
    4Filename    : int2str_itoa.cpp
    3 J, \7 v* m. ~. e0 U1 O* f+ Q& Y
    5Compiler    : Visual C++ 8.0 / ANSI C* q" e! \! P* G6 H& C! _$ Q
    6Description : Demo the how to convert int to const char *
    3 H* h( d$ a3 ?; `1 y
    7Release     : 01/06/2007 1.0
    * R3 N$ e- Z% B/ ~
    8*/' N& p1 V4 D8 M& e
    9#include "stdio.h"
    " e) A& H* U* F// puts(): f; U# A( s- J, s& b
    10#include "stdlib.h"  m( H+ I$ k' u" C$ w/ B+ D
    // _itoa()
      q- H; z7 R8 m11
    4 X0 }4 U3 [! m12void int2str(int , char
    $ C) K% n, N  B9 h4 a* [! ^3 O9 Q/ \*);) w- U' o: ~. e' C0 D0 ~
    139 \1 @9 Q2 b. f! L8 P
    14int main() {) m! U8 d5 h. G8 |& B# b
    15  int i =
    * t. n/ L5 x( v) s4 a123;7 J) |) K8 X% V% j, k: U" q& Y
    16  char s[64];7 V5 {: Y8 K0 L6 D
    17  int2str(i, s);6 B' [" f* d! m
    18  puts(s);+ }- i1 p) M, @. }2 X; v5 J7 T+ S
    19}  T* a" B3 v, y
    20" W/ g+ \- T" N# s1 ~& B
    21void int2str(int i, char2 L. Y9 D$ D7 b: S+ x) s% c  c
    *s) {3 O+ q. Q8 ^5 @7 P: v( r
    22  _itoa(i, s, 10);9 g$ C* A9 o1 u6 ^/ o# w3 R* r
    23}

    " M- O( V9 w+ p9 r2 S( F" J- i& X' {6 o2 i' `( {! }* H% d' J; U
    - S/ A) q5 N% B! r; {
    3.若用C++,stringstream是個很好用的東西,stringstream無論是<<或>>,都會自動轉型,要做各型別間的轉換,stringstream是個很好的媒介。
    + z0 n% y. z$ b( B 1/**//*
    # j* ^  g" n$ l$ K 2(C) OOMusou 2007 http://oomusou.cnblogs.com5 F$ C# ]0 e8 f' ?
    3
      a0 S3 [' r0 {4 @: y. m
    4Filename    : int2str_sstream.cpp0 q( M* D, }( b9 O; ^6 t0 h
    5Compiler    : Visual C++ 8.0 / ISO C++/ X& o! f( e! Q/ Z& e
    6Description : Demo the how to convert int to string% E% [+ a  C) K7 h* v
    7Release     : 01/06/2007 1.0+ D3 y% Y: v  j+ l+ r( x- i3 e9 V
    8*/: N- |9 p* O3 @/ B* r# R
    9
    8 [( b* H. t# D) W8 H# b
    10#include <iostream>  B8 X* w2 U  x  S
    11#include <string># ?2 h' X5 E1 y8 G" \: f- ^) J# y8 V
    12#include <sstream>) B) O& k6 r, g- U" @
    13
    0 k! s6 f% v0 H' i( x
    14using6 z8 ]; g* a8 {; H* I8 c' J
    namespace std;
    ' M" l4 q- G4 T0 j
    15
    . f# Z- J  M  ]0 j8 Q8 o: O
    16string int2str(int &);: m, q8 q+ o0 z/ l+ t4 ^
    17
    , X+ K: |; ^; ]* d
    18int main(void) {
    $ O: E6 E5 U/ b0 }% {! Q( P% B5 S8 O
    19  int i =
    * M* M' `; Q! Y& S123;. [2 W2 x( R- M8 D5 ~/ {* t! g0 _
    20  string s;2 q! q' D; m' {  s
    21  s = int2str(i);% J) _. @% R% d1 V* F' o
    22' z- D# E- Y9 F1 m! b4 U  ^" h
    23  cout << s << endl;; t1 m# x& a) ~( n* B; ]$ m, Q4 [
    24}# }" O. d+ J! j
    25: Z- I) I! i8 s+ n1 W+ S5 I
    26string int2str(int &i) {
    ' y- {2 t4 ~+ T0 M7 |
    27  string s;
    + b0 X6 t6 C$ M0 \* I4 b1 W
    28  stringstream ss(s);8 U( t& y1 s  Q
    29  ss << i;
    6 u5 Z# P8 t) S: p$ n
    30  S) S- u0 W5 ~5 c. X" g
    31  return ss.str();
    ) I/ I/ O) N, ^. {, v  x8 t
    32}

    8 k( O2 a5 z7 ~  Z2 u$ x; `5 N9 Q9 T+ d8 i% W# y

    / B! n; F( [- k6 B; a, d& d4.若用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-18 13:05

    Powered by Discuz! X3.5 Licensed

    © 2001-2025 Discuz! Team.

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