C++ 中 int 与string相互转换

时间:2023-01-06 08:48:32

int -->  string

1.使用itoa()函数

将任意类型的数字变量转换为字串子变量。

#include<stdio.h>
#include<iostream>
#include<string>
using namespace std;
int main()
{
int a= ;
char str[] ;
itoa(a,str,);
cout<<str<<endl;
return ;
}

缺点:它是一个非标准的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= ;
char str[] ;
sprintf(str,"%d",a);
cout<<str<<endl;
return ;
}

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 = ;
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[] = "";
int num = atoi(str);
cout<<num<<endl;
return ;
}

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[] = "";
int num2 = strtol(str, NULL, );
cout<<num2<<endl;
return ;
}

3.使用itos函数

#include<iostream>
#include<string>
using namespace std;
int main()
{
int num = ;
string str = itos(num);
cout<<str<<endl;
}