直接上代码
#include <iostream>
#include <sstream>
using namespace std;
int zhlx(){
//double(11) 将int类型 强转为double类型
//string转char*。主要有三种方法可将str转换为char*类型:data(); c_str(); copy();
string str = "hello";//devc++中编译需要添加const,否则会报错invalid conversion from const char* to char *
const char* p = str.data();//加const 或者用char * p=(char*)str.data();的形式
const char *p2 = str.c_str();//同上,要加const或者等号右边用char* #include <string> //使用头文件string
cout<<"string转char*:"<< p <<endl;
char p3[50];
str.copy(p3, 5, 0);//这里5代表复制几个字符,0代表复制的位置,
*(p3+5)='\0';//注意手动加结束符!!
//char * 转string。
string s; //当声明了string类型变量s后,用printf("%s",s);是会出错的,因为“%s”要求后面的对象的首地址。但是string不是这样的一个类型。所以肯定出错。
char *p4 = "hello";//直接赋值
s = p4;
cout<<"char * 转string:" <<s <<endl;
//string转char[]
string pp = "dagah";
char p5[8];
int i;
for( i=0;i<pp.length();i++)
p5[i] = pp[i];
p5[i] = '\0';
//printf("%s\n",p5);//printf 输出格式
cout<<"string转char[]:"<<p5<<endl;
//char[]转string 可以直接赋值。
string s12;
char *p12 = "hello";//直接赋值
s12 = p12;
cout<<"char[]转string:"<<s12<<endl;
//strint-->int:
int int_temp=0;
string string_temp="10";
stringstream stream2(string_temp); //应该是 通过第三方间接 进行转换 //#include <sstream> stringstream
stream2>>int_temp;
cout <<"strint-->int:"<<int_temp<<endl;
//int-->string:
int sdfgv=22;
string jis="";
stringstream stream4;
stream4<<sdfgv;
jis=stream4.str();
cout <<"int-->string:"<<jis<<endl;
}
int main() {
//int double float 都可以互转(不好,像小数型转int 后面小数丢失)
double a1=double(11);
int a2=double(11.11);
bool a3=bool(0);//int 0 和 1 强转bool
cout<<"强转:"<< a1<<" and "<<a2<<endl;
//zhlx();
return 0;
}