概述
C++各基本类型与string的转换
- 中已经封装好了对应的转换方法:
- 标准库中定义了to_string(val);可以将其它类型转换为string
- 还定义了一组stoi(s,p,b)、stol(s,p,b)、stod(s,p,b)等转换函数.可以分别转化成int、long、double等
void testTypeConvert()
{
//int --> string
int i = 5;
string s = to_string(i);
//double --> string
double d = 3.14;
//long --> string
long l = 123234567;
//char --> string
char c = 'a';
cout << to_string(c) << endl; //自动转换成int类型的参数
//char --> string
string cStr; cStr += c;
s = "123.257";
//string --> int;
cout << stoi(s) << endl;
//string --> int
cout << stol(s) << endl;
//string --> float
cout << stof(s) << endl;
//string --> doubel
cout << stod(s) << endl;
}
- 利用
strstream
进行转换
template<class T>
string convertToString(const T val)
{
string s;
std::strstream ss;
ss << val;
ss >> s;
return s;
}
int convertStringToInt(const string &s)
{
int val;
std::strstream ss;
ss << s;
ss >> val;
return val;
}
char*与string
- char* 转 string
string s(char *);
//只能初始化,在不是初始化的地方最好还是用assign().
- string 转 char*
- 先将str转成const char*
const char* p = str.c_str();
//c_str(),返回有” “的字符串数组
- 再将const char* 转成 char*
char* res = new char[str.size()+1];
strcpy(res,p); // 在遇到 '后,循环停止。
strcpy的经典实现
char* strcpy(char* des,const char* source)
{
char* r=des;
assert((des != NULL) && (source != NULL));
while((*r++ = *source++)!='