【C++】《C++ 17 入门经典》读书笔记 12 ---- 将 std::string 对象转换为 C 样式的字符串

第一种方法是调用其 c_str() 成员函数(代表 C 字符串):

std::string proverb {"Many a mickle makes a muckle."};
const char* proverb_c_str = proverb.c_str();

这种转换会得到一个类型为const char* 的 C 字符串。因为是常量,所以不能使用该指针来修改 string 对象中的字符,而只能访问它们。

第二种方法是使用 string 对象的 data() 函数,从 C++17 开始,该函数会得到一个非 const char* 指针(在 C++17 之前,使用 data() 也会得到一个 const char* 指针):

char* proverb_data = proverb.data();

只有当调用遗留的 C 样式的函数时,才应该转换为 C 样式的字符串。

在自己的代码中,我们推荐以一致的方式使用 std::string 对象,因为它们比普通的 char 数组安全得多,也方便得多。

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值