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

一、itoa函数(Windows)

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

// Windows
#include  // string, sprintf
//#include 
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, std::to_string
using namespace std;

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

    return 0;
}

三、借助stringstream

缺点:慢。

#include  //stringstream
#include  //string
using namespace std;

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

    return 0;
}

四、C库函数sprintf()

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

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

#include  // string, sprintf
#include  // 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;
}

 

你可能感兴趣的:(C++)