编程语言
首页 > 编程语言> > 【c++】c_str()的用法详解

【c++】c_str()的用法详解

作者:互联网

c_str():生成一个const char*指针,指向以空字符终止的数组。

#include<iostream>
#include<string>
#include<cstring>//需要包含cstring的字符串
using namespace  std;

int main()
{
    const char *strC;
    string strS = "1234";
    strC = strS.c_str();
    cout << strC << endl;
    strS = "abcde";
    cout << strC << endl;

    cin.get();
    return 0;
}

效果:

 

 

上面如果继续用strC指针的话,导致的错误将是不可想象的。就如:1234变为abcd

其实上面的c = s.c_str(); 不是一个好习惯。既然strc指针指向的内容容易失效,我们就应该按照上面的方法,那怎么把数据复制出来呢?

#include<iostream>
#include<string>
#include<cstring>//需要包含cstring的字符串
using namespace  std;

int main()
{
    string strS = "1234";
    int iLen = strS.size() + 1;//size不包含最后的空字符,所以要+1
    char *strC = new char[iLen];
    strcpy_s(strC, iLen,strS.c_str());
    cout << strC << endl;
    strS = "abcde";
    cout << strC << endl;
    delete[]strC;//删除自定义数组

    cin.get();
    return 0;
}

效果:

 

标签:strS,c++,char,int,详解,str,strC,include
来源: https://www.cnblogs.com/KMould/p/15190706.html