前引
博主经常遇见需要将string类转换为const char*,char *的要求,因为函数的参数只接收char * / const char*的参数,如SQLConnect。
1. Convert string to const char*
method①:
const char* constCharPtr = object.data();
method②:
const char* constCharPtr = object.c_str();
string::data()与string::c_str()区别在于前者指向的字符数组不以‘\0’结尾。
2. Convert string to char*
method①:
char* charPtr = const_cast<char*>(object.data());
char* charPtr = const_cast<char*>(object.c_str());
const_cast用于消除对象的const属性
const_cast
method②:
int len = object.size();
char* charPtr = new char[len+1];
copy(object.cbegin(), object.cend(), charPtr);
charPtr[len] = '\0';
用标准算法copy(),需包含头文件<algorithm>
Convert a std::string to char* in C++
3. Convert string to int
method①:
int intObject = atoi(object.c_str());
method②:
int intObject = stoi(object);
method③:
int len = object.size();
int* intPtr = new int[len];
for (int i = 0; i <= len; i++)
{
*(intPtr + i) = object[i] - '0';
}

3392

被折叠的 条评论
为什么被折叠?



