string转char*/char[]
转char*

主要有三种方法可以将str转换为char*类型,分别是:data(); c_str(); copy();

1.data()

data()仅返回字符串内容,而不含有结束符'\0'

    std::string s = "active";

    //const char* p = s.data();
    char* p = (char*)s.data();

  

2.c_str()

c_str()函数返回一个指向C字符串的指针,该指针指向内存内容和string 相同。因为c语言不支持string类型,故为了在c++兼容C字符串,提供了c_str()函数来实现转换。注意一定要使用strcpy()函数来操作c_str();c_str()返回的是一个临时指针,不能对其进行操作。

    std::string s = "active";
    const char* p = s.c_str();

  

3.copy()方法

    std::string s = "active";
    char p[10];

    s.copy(p,2,2);
    *(p + 2) = '\0';

  

string转char[]
    std::string s = "native";
    char p[8];
    for (int i = 0; i < s.length(); i++)
        p[i] = s[i];
    p[s.length()] = '\0';