一、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;
}