C++ Convert string类 to const char* / char* /int


前引

博主经常遇见需要将string类转换为const char*,char *的要求,因为函数的参数只接收char * / const char*的参数,如SQLConnect。


1. Convert string to const char*

method①:

const char* constCharPtr = object.data();

string:data()

method②:

const char* constCharPtr = object.c_str();

string::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';
	}

Converting Strings to Numbers in C/C++

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值