C++---string与字符数组之间的相互转换

相互转换

在C++中,可以使用以下方法将std::string与字符数组进行相互转换:

  1. std::string转换为字符数组:

    • 使用c_str()方法:返回一个指向以null结尾的字符数组的指针。
    • 使用data()方法:返回一个指向字符数组的指针,但不保证以null结尾。
    • 使用copy()方法:将std::string的内容复制到字符数组中。
  2. 将字符数组转换为std::string

    • 使用字符数组作为std::string的构造函数的参数。
    • 使用assign()方法:将字符数组的内容赋值给std::string
    • 使用append()方法:将字符数组的内容追加到std::string的末尾。

示例代码:

#include <iostream>
#include <string>

int main() {
   
   
    // std::string 转换为字符数组
    std::string str = "Hello, world!";
    
    // 方法一:使用 c_str() 方法
    const char* charArray1 = str.c_str();
    std::cout << "Using c_str(): " << charArray1 << std::endl;
    
    // 方法二:使用 data() 方法
    const char* charArray2 = str.data();
    std::cout << "Using data(): " << charArray2 << std::endl;

    // 方法三:使用 copy() 方法
    char charArray3[20]; // 假设字符数组大小为 20
    str.copy(charArray3, sizeof(charArray3));
    charArray3[str.size()] = '\0'; // 添加 null 结尾
    std::cout << "Using copy(): " << charArray3 << std::endl;

    // 字符数组转换为 std::string
    const char* charArray = "Hello, C++!";
    
    // 方法一:使用构造函数
    std::
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Frank---7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值