最近写些算法题经常涉及数字字符类型的转换,特地上网查询整理所得,int,char,string三种类型的互转方法,经测试运行正常。
以下是测试整理的代码:
#include <iostream>
#include <sstream>
#include <cstring>
#include <cstdlib>
using namespace std;
int main(){
int n = 9092;
char *ch = "6667";
string str = "8889";
//(1)int转char
char i_c[10];
sprintf(i_c, "%d", n);
cout << i_c << endl;
//(2)int转char 头文件:<cstdlib>或<stdlib.h>
char i_ch[10];
_itoa(n, i_ch, 10); //或 itoa(n, i_ch, 10);
cout << i_ch << endl;
//(3)int转string 头文件:<sstream>和<cstring>|<string.h>
stringstream ss;
ss << n;
string i_str = ss.str(); //或 string i_str; ss >> i_str;
cout << i_str << endl;
//(4)char转string 头文件:<cstring>或<string.h>
string s(ch, ch+strlen(ch)); //或 string s(ch);
cout<< s << endl;
//(5)char转int 头文件:<cstdlib>或<stdlib.h>
int ch_i = atoi(ch); //或 long ch_i = atol(ch);或 long long ch_i = atoll(ch);
cout << ch_i << endl;
//(6)string转char 头文件:<cstring>或<string.h>
const char *c = str.data(); //或 const char *c=str.c_str();
cout << c << endl;
//(7)string转int 头文件:<sstream>和<cstring>|<string.h>
stringstream ssy;
int str_i;
ssy << str;
ssy >> str_i;
cout << str_i << endl;
//(8)string转int 头文件:<cstring>和<cstdlib>||<stdlib.h>
int in = atoi(str.data()); //或 int in = atoi(str.c_str()); atol/atoll同样可用
cout << in << endl;
return 0;
}
网络整理,如有不妥,望指正!