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