从 int 到 string 的几种方法(C++)

参考链接:http://www.cppblog.com/forLinda/archive/2006/03/17/4298.html

法一

/**
 * <stdio.h>
 * int sprintf( char *buffer, const char *format [, argument] ... );
 */
void int2str0() {
    int ss;
    char temp[64];
    string str;
    ss = 87676990;
    sprintf(temp, "%d", ss);
    string s(temp);
    cout << s.c_str() << endl;  // 87676990
    cout << s.size() << endl;   // 8
}

法二

/**
 * <stdlib.h>
 * char *_itoa( int value, char *string, int radix );
 */
void int2str1() {
    char buf[20];
    int i = 3445;
    _itoa(i, buf, 10);
    string s(buf);
}

法三

/**
 * <sstream.h> or <sstream>
 */
void int2str2() {
    int hello = 4;
    stringstream ss;
    ss << hello;
    string s = ss.str();
    cout << s.c_str() << endl;
}

法四

string int2str(int num) {
    string str = "";
    if (num == 0) {
        return "0";
    }
    
    bool bNegative = (num < 0);
    
    num = abs(num);
    while (num) {
        str = (char)(num % 10 + 48) + str ;
        num /= 10; 
    } 
    return bNegative ? "-" + str : str;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值