C++ int转string的几种方法比较

一、itoa函数(Windows)

非C/C++标准,可移植性不好

// Windows
#include <string> // string, sprintf
//#include <cstdlib>
using namespace std;

int main() {
    int n=100;
    char ch[10];
    _itoa(n, ch, 10); //10表示十进制,vs2017使用_itoa,其他环境可能使用itoa
    
    //下面把char*转成string
    string str(ch, ch+strlen(ch));

    return 0;
}

二、std::to_string()

#include <string> // string, std::to_string
using namespace std;

int main(){
    int n=100;
    string str=to_string(n);

    return 0;
}

三、借助stringstream

缺点:慢。

#include <sstream> //stringstream
#include <string> //string
using namespace std;

int main(){
    stringstream ss;
    string str;
    int n=100;
    ss<<n;
    ss>>str;

    return 0;
}

四、C库函数sprintf()

优点:可以转换各种进制的数。

缺点:需要先分配足够的char数组。

#include <string> // string, sprintf
#include <cstring> // strlen(linux)
using namespace std;

int main() {
	int n = 100;
	char ch[10];
	sprintf(ch, "%d", n);

	//下面把char*转成string
	string str(ch, ch + strlen(ch));

	//printf("%s\n",str.c_str());

	return 0;
}

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值