int --> string
1.使用itoa()函数
将任意类型的数字变量转换为字串子变量。
#include<stdio.h> #include<iostream> #include<string> using namespace std; int main() { int a= 123; char str[20] ; itoa(a,str,10); cout<<str<<endl; return 0; }
缺点:它是一个非标准的C / C++语言功能,因此不能好好的被所有编译器使用
2.使用sprintf转化
主要功能是把格式化的数据写入某个字符串中
原型
int sprintf( char *buffer, const char *format, [ argument] … );
参数列表
buffer:char型指针,指向将要写入的字符串的缓冲区。
format:格式化字符串。
[argument]...:可选参数,可以是任何类型的数据。
#include<stdio.h> #include<iostream> #include<cmath> #include<string> using namespace std; int main() { int a= 123; char str[20] ; sprintf(str,"%d",a); cout<<str<<endl; return 0; }
2.使用to_string()函数
这个函数是C++11.0新增的
string to_string (int val);
string to_string (long val);
string to_string (long long val);
string to_string (unsigned val);
string to_string (unsigned long val);
string to_string (unsigned long long val);
string to_string (float val);
string to_string (double val);
string to_string (long double val)
#include<iostream> #include<string> using namespace std; int main() { int a = 123; string str = to_string(a); cout<<a<<endl; }
string --> int
1.使用atoi函数
(表示 ascii to integer)是把字符串转换成整型数的一个函数
int atoi(const char *nptr);
#include<stdio.h> #include<iostream> #include<cmath> #include<string> using namespace std; int main() { char str[20] = "123"; int num = atoi(str); cout<<num<<endl; return 0; }
2.使用strtol函数
long int strtol(const char *nptr,char **endptr,int base);
#include<stdio.h> #include<iostream> #include<cmath> #include<string> using namespace std; int main() { char str[20] = "123"; int num2 = strtol(str, NULL, 10); cout<<num2<<endl; return 0; }
3.使用itos函数
#include<iostream> #include<string> using namespace std; int main() { int num = 12; string str = itos(num); cout<<str<<endl; }