string char*互相转换

1. string to char*

std::string str = "string";
char* chr = const_cast<char*>(str.c_str())
string str = "some string" ;
char *cstr = &str[0];
std::string str = "string";
const char *cstr = str.c_str();

Note that it returns a const char *; you aren’t allowed to change the C-style string returned by c_str(). If you want to process it you’ll have to copy it first:

std::string str = "string";
char *cstr = new char[str.length() + 1];
strcpy(cstr, str.c_str());
// do stuff
delete [] cstr;

Or in modern C++:

std::vector<char> cstr(str.c_str(), str.c_str() + str.size() + 1);
// use &chars[0] as a char*

2. char* to string

方式1:直接赋值:

char c[] = "this is a char array";
const char* t = "const char";
string s = t;
string ss = c;

方式2:https://stackoverflow.com/questions/8438686/convert-char-to-string-c

同理const char*string

const char* cc = "this is a const exp";
string s(cc, cc + strlen(cc));

3. char* 和const char*

const char* src = "this is a const exp";
char* ch = const_cast<char*>(src);
const char* dst = static_cast<const char*>(ch);
cout << ch << endl;
cout << dst << endl;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值