C++各种数据类型(char*, string, int, double等)的相互转换

岁数大了,脑子就记不住东西了。每次写程序,到了数据转换这里,都要现查网上的代码。为了节省时间,我就在这篇博客里列出一些经常用到的类型转换代码,方便查找并使用,也希望能够帮助有需要的同学。

1. String转换

string转char*和char[]

string _3D_object_path="Hello!";
char * p = new char[strlen(_3D_object_path.c_str()) + 1];
strcpy(p, _3D_object_path.c_str());

string ts = "Hello world!";
char ts1[100]; //查了很多方法,貌似都不能进行动态的指定
strncpy(ts1, ts.c_str(), ts.length() + 1);       // 注意,一定要加1,否则没有赋值'\0' 

string转int,double,float

std::string str = "12345";
int i = atoi(str.c_str());

std::string str2 = "12345.56";
float f1 = std::stof(str2);
double d1 = std::stod(str2);

f1: 12345.5596
d1: 12345.559999999999...

string转bool(自己瞎写的)

std::string str3 = "true";
bool t1 = (str3 == "true");

2. Char*以及Char[]转换

char*与char[]转string

//直接赋值
char sc[] = "hello";   
char* sc2;
string st1 = st;
string st2 = sc2;

char*与char[]转int,float以及double可以先转string然后再处理

char*与char[]互转

//char[]转char*
char sc1[] = "Hello";
char *sc2 = sc1;

//char*转char[]
const char *sc1 = "Hello,world";
char sc2[100];
strncpy(sc2, sc1 , strlen(sc1) + 1);    // 注意加1操作 

char*与const char*互转

//const char* to char*
const char *sc = "Hello,world";
char *sc2 = new char[strlen(sc) + 1];
strcpy(sc2 , sc);

//char* to const char*
char *sc3 = "Hello,world";     
const char *sc4 = sc3;

3. Int,float,double转换

转string

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);

转char*或char[]可以间接通过string实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿老甘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值