int,char,char*,string的相互转化(共五对 类型相互转化)下
共五对 类型相互转化: 1.int 与 string; 2.int 与 char; 3.int 与 char[]; 4.string 与 char; 5.string 与 char[]。
其中,1.int 与 string;在该博文里 int,char,char*,string的相互转化(共五对 类型相互转化)上
本文是借助了,网上的资料,对int,char,char*,string之间的转化做了比较全面的汇总,希望大家喜欢。
具体借用的地方写了链接。
2、int 与 char
2.1 int ->char
int data_int=9;
char data_str=(char)(data_int+'0');
cout<<data_str<<endl;
//需要注意的是因为字符只能是单个的字符,所以这种方法处理的int只能是个位数即0-9;
2.2 char->int:下
char str_data='5';
int int_data=(int)(str_data-'0');
cout<<int_data<<endl;
3、 int 与 char[]
3.1 int ->char[]
函数: char*_itoa(intvalue,char*string,intradix);
参数说明编辑
value—–要转换的整形值
string—–转换后的字符串
radix——表示基数(2, 8, 10, 16)等进制基数
eg:
char buffer[20];
int i = 127;
_itoa(i, buffer, 10);//10进制数 转化为char[] ,以10进制形式保存在 char buffer[]中
cout << i << "\t" << buffer << endl;
_itoa(i, buffer, 16);//10进制数 转化为char[] ,以16进制形式保存在 char buffer[]中
cout << i << "\t" << buffer << endl;
_itoa(i, buffer, 2);//10进制数 转化为char[] ,以2进制形式保存在 char buffer[]中
cout << i << "\t" << buffer << endl;
3.2 char[]->int:
char *ch = "128";
int n = atoi(ch);
cout << ch << "\t" << n << endl;
4、string 与 char
//C++中string、char *、char[]的转换
//https://www.cnblogs.com/Pillar/p/4206452.html
4.1 string->char
用下标取元素
string mystr = "ABCD";
char mych = mystr[3];
4.2 char->string
(4.2.1) 使用构造函数string(n, 'c');
将字符串初始化为n个’c’字符的副本。
char ch = 'x';
string str(1, ch); // 使用构造函数string(n, 'c')将字符串初始化为n个'c'字符的副本。
(4.2.2) 采用间接办法,借用中间char*数组,使用 string str(char*,n);
取char数组 的前n个字符 到str中。
char c = 'F';
char temp[1];
temp[0] = c;
string result(temp, 1); //string str(char*,n);取char数组 的前n个字符 到str中
5、string 与 char[]
5.1 string->char[]
主要有三种方法可以将str转换为char*类型,分别是:data(); c_str(); copy();
(5.1.1) data()方法
eg:
string str = "hello";
const char* p = str.data();//加const 或者用char * p=(char*)str.data();的形式
(5.1.2) c_str()方法
eg:
string str=“world”;
const char *p = str.c_str();//同上,要加const或者等号右边用char*
(5.1.3) copy()方法
eg:
string str="hmmm";
char p[50];
str.copy(p, 5, 0);//这里5代表复制几个字符,0代表复制的位置,
*(p+5)=‘\0’;//注意手动加结束符!!!
5.2 char[]->string
直接赋值
eg:
string s;
// char *p = "hello";//直接赋值 // 两种写法都可以 char *p 等价于 char p[]
char p[] = "hello";//直接赋值
s = p;