C++ String转字符数组

#include <bits/stdc++.h>

using namespace std;

int main(void)
{
    /*
    C++ 字符串转话字符数组
    s.c_str():
        此方法生成的字符数组是临时的指针,指向的内容容易失效
        当有一个改变这些数据的成员函数被调用后,其中的数据就会失效
        使用时应该先转换,把它的数据复制到用户自己可以管理的内存中。
        因此使用strcpy();
        copy(p,n,size_type _Off = 0):
            1 从string类型对象中至多复制n个字符到字符指针p指向的空间中。
            2 默认从首字符开始,但是也可以指定,开始的位置(记住从0开始)。返回真正从对象中复制的字符。------用户要确保p指向的空间足够保存n个字符。
            3   __s –将值复制到的C字符串。
                __n –要复制的字符数。 
                __pos –要复制的第一个字符的索引。
    */  
    char *c = new char[20];
    char *c2 = new char[20];

    string s = "hello";
    // c = s.c_str();
    // cout << c << endl;
    // s = "world";
    // cout << c << endl;
   // strcpy(c, s.c_str());
    cout << c << endl;

    // s.copy(c, 0, 2);
    // s.copy(c, 2, 2);
    s.copy(c, 2, 1);
    s.copy(c2, 0, 2);

    cout << c << " " << c2;
    system("pause");
    return 0;

}
posted @ 2020-11-07 11:47  ArchieYu  阅读(2642)  评论(0编辑  收藏  举报