欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

c++中c_str()的用法示例

 更新時間:2020年09月27日 10:41:22   作者:chuyaoxin  
這篇文章主要介紹了c++中c_str()的用法示例,幫助大家更好的理解和學習C++,感興趣的朋友可以了解下
//標準庫的string類提供了三個成員函數(shù)來從一個string得到c類型的字符數(shù)組
//主要介紹c_str
//c_str():生成一個const char*指針,指向以空字符終止的數(shù)組。
//這個數(shù)組應該是string類內(nèi)部的數(shù)組
#include <iostream>
//需要包含cstring的字符串
#include <cstring>
using namespace std;
 
int main()
{
 //string-->char*
 //c_str()函數(shù)返回一個指向正規(guī)C字符串的指針, 內(nèi)容與本string串相同
 
 //這個數(shù)組的數(shù)據(jù)是臨時的,當有一個改變這些數(shù)據(jù)的成員函數(shù)被調(diào)用后,其中的數(shù)據(jù)就會失效。
 //因此要么現(xiàn)用先轉換,要么把它的數(shù)據(jù)復制到用戶自己可以管理的內(nèi)存中
 const char *c;
 string s = "1234";
 c = s.c_str();
 cout<<c<<endl;
 s = "abcde";
 cout<<c<<endl;
}

結果是:

上面如果繼續(xù)用c指針的話,導致的錯誤將是不可想象的。就如:1234變?yōu)閍bcde

其實上面的c = s.c_str(); 不是一個好習慣。既然c指針指向的內(nèi)容容易失效,我們就應該按照上面的方法,那怎么把數(shù)據(jù)復制出來呢?這就要用到strcpy等函數(shù)(推薦)。

//標準庫的string類提供了三個成員函數(shù)來從一個string得到c類型的字符數(shù)組
//主要介紹c_str
//c_str():生成一個const char*指針,指向以空字符終止的數(shù)組。
//這個數(shù)組應該是string類內(nèi)部的數(shù)組
#include <iostream>
//需要包含cstring的字符串
#include <cstring>
using namespace std;
 
int main()
{
  //更好的方法是將string數(shù)組中的內(nèi)容復制出來 所以會用到strcpy()這個函數(shù)
  char *c = new char[20];
  string s = "1234";
  // c_str()返回一個客戶程序可讀不可改的指向字符數(shù)組的指針,不需要手動釋放或刪除這個指針。
  strcpy(c,s.c_str());
  cout<<c<<endl;
  s = "abcd";
  cout<<c<<endl;
}

以上就是c++中c_str()的用法示例的詳細內(nèi)容,更多關于c++ c_str()的資料請關注腳本之家其它相關文章!

相關文章

  • C語言實現(xiàn)黎曼和求定積分

    C語言實現(xiàn)黎曼和求定積分

    這篇文章主要為大家詳細介紹了用C語言程序實現(xiàn)黎曼和求定積分,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • Qt6.0?qproperty-*不生效原因解決分析

    Qt6.0?qproperty-*不生效原因解決分析

    這篇文章主要為大家介紹了Qt6.0?qproperty-*不生效原因解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • 探討:C++實現(xiàn)鏈式二叉樹(用非遞歸方式先序,中序,后序遍歷二叉樹)

    探討:C++實現(xiàn)鏈式二叉樹(用非遞歸方式先序,中序,后序遍歷二叉樹)

    本篇文章是對用C++實現(xiàn)鏈式二叉樹(用非遞歸方式先序,中序,后序遍歷二叉樹)的方法進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • C語言實現(xiàn)繪制南丁格爾玫瑰圖的示例代碼

    C語言實現(xiàn)繪制南丁格爾玫瑰圖的示例代碼

    玫瑰圖中有一種不等半徑的統(tǒng)計圖稱為南丁格爾玫瑰圖,網(wǎng)上很熱門,是一很有藝術感的漂亮的統(tǒng)計圖,下面我們就來看看如何使用C語言繪制它吧
    2024-03-03
  • c++容器list、vector、map、set區(qū)別與用法詳解

    c++容器list、vector、map、set區(qū)別與用法詳解

    這篇文章主要介紹了c++容器list、vector、map、set區(qū)別與用法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • C語言中各類指針的用法(小結)

    C語言中各類指針的用法(小結)

    這篇文章主要介紹了C語言中各類指針的用法(小結),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • C++ Cartographer源碼中關于Sensor的數(shù)據(jù)走向深扒

    C++ Cartographer源碼中關于Sensor的數(shù)據(jù)走向深扒

    這篇文章主要介紹了C++ Cartographer源碼中關于Sensor的數(shù)據(jù)走向,整個Cartographer源碼閱讀是很枯燥的, 但絕對是可以學到東西的,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2023-03-03
  • Qt中QPainter與坐標的使用

    Qt中QPainter與坐標的使用

    本文主要介紹了Qt中QPainter與坐標的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • C語言實現(xiàn)簡單五子棋小游戲

    C語言實現(xiàn)簡單五子棋小游戲

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡單五子棋小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • C++11系列學習之可調(diào)用對象包裝器和綁定器

    C++11系列學習之可調(diào)用對象包裝器和綁定器

    這篇文章主要介紹了C++11系列學習之可調(diào)用對象包裝器和綁定器,下文基于C++的相關資料展開詳細內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-04-04

最新評論