C/C++教程

【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;
}

效果:

 

这篇关于【c++】c_str()的用法详解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!