使用stringstream即可
stringstream可以吞下不同的类型,根据b的类型,然后吐出不同的类型。
//#include
int a=80;
stringstream ss;
ss<string str = ss.str();
cout<//80
int b;
ss >> b;
cout << b << endl; // 30
(1)string转const char*
通过string类的c_str()函数能够把string对象转换成c中的字符串的样式,且返回有”\0“的字符串数组,而.data()则返回没有”\0“的字符串数组
string s1 = "abcdeg";
const char *k = s1.c_str();
cout<
注:c_str函数的返回值是const char*的,不能直接赋值给char*
(2)const char*转string
直接赋值即可
const char* s1 ="abc";
string s(s1);
(1)string转char*
用string的一个成员函数copy来实现
string s1 = "abcdefg";
char *data;
int len = s1.length();
data = (char *)malloc((len+1)*sizeof(char));
s1.copy(data,len,0);
printf("%s",data);
cout<<data;
(2)char*转string
char* c ="abc";
string s(c);
(1)int转char*
使用itoa
//char *itoa( int value, char *string,int radix);
// value:欲转换的数据。
// string:目标字符串的地址。
// radix:转换后的进制数,可以是10进制、16进制等。
// 返回指向string这个字符串的指针
int aa = 80;
char c[8];
_itoa(aa, c, 10);
cout << c << endl; // 80
补充:
使用sprintf
int n = 100;
char t[10];
sprintf(t, "%d", n);
cout<
(2)char*转int
int a; //转换的目标变量。
char c = '7'; //要转换的字符。
a = c - '0';
使用atoi函数
//#include
char str[]="1234";
int a=atoi(str);
补充:
const char*类型可以直接给CString类型赋值,例如:
const char* c="hello"
CString cstr=c;
CString类型变量可以直接给string类型变量赋值,但是string类型不能对CString类型直接赋值.因此若要将string转化为CString可先将string类型变量转换为const char*类型,然后再直接赋值就可以了
CString cstr;
string str="abcdefg";
cstr = str.c_str();
CString转换为const char*的方法如下:
先转为String类型,再利用.c_str()转换为const char*
CString cstr="abcdefg"
string str = cstr;
const char* c = srt.c_str();
int a,b=4,c=5;
CSting cstr1=_T("abc"),cstr2;
a=_ttoi(cstr1);
cstr2.Format(_T("%d"),c);