Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c++ string转char

作者:碎花洋裙的优雅   发布日期:2025-12-08   浏览:45

#include <iostream>
#include <string>

int main() {
    // 定义一个 C++ string 类型的变量
    std::string str = "Hello, World!";

    // 方法1: 使用 c_str() 函数将 string 转换为 const char*
    const char* charPtr1 = str.c_str();
    std::cout << "Using c_str(): " << charPtr1 << std::endl;

    // 方法2: 使用 data() 函数将 string 转换为 const char*
    const char* charPtr2 = str.data();
    std::cout << "Using data(): " << charPtr2 << std::endl;

    // 如果需要非 const 的 char*,可以进行显式转换(不推荐,容易引发未定义行为)
    char* nonConstCharPtr = &str[0];
    std::cout << "Using &str[0]: " << nonConstCharPtr << std::endl;

    return 0;
}

解释说明:

  1. c_str():这是最常用的方法,它返回一个指向以空字符终止的 C 风格字符串的指针(const char*)。这个字符串的内容是 std::string 的副本。

  2. data():与 c_str() 类似,但返回的是 const char*。在 C++11 之前,data() 返回的指针可能不包含空字符终止符,但在 C++11 及之后版本中,data()c_str() 是等价的。

  3. &str[0]:直接获取 std::string 内部缓冲区的指针。这种方法不推荐使用,因为如果 std::string 对象被修改或销毁,指针可能会失效,导致未定义行为。

注意:

  • 如果你需要修改返回的字符数组,建议不要使用 c_str()data(),因为它们返回的是 const char*,不能直接修改内容。

上一篇:c++生成随机整数

下一篇:c++ map添加元素的方法

大家都在看

c++闭包

c++单引号和双引号的区别

c++ 注释

c++如何判断素数

c++格式化字符串

c++ orm框架

c++ random函数用法

队列c++

c++freopen怎么用

进制转换c++代码

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站