1. 程式人生 > >C++中的C_str()函式簡單用法

C++中的C_str()函式簡單用法

語法: 
const char *c_str();
c_str()函式返回一個指向正規C字串的指標常量, 內容與本string串相同. 
這是為了與c語言相容,在c語言中沒有string型別,故必須通過string類物件的成員函式c_str()把string 物件轉換成c中的字串樣式。
注意:一定要使用strcpy()函式 等來操作方法c_str()返回的指標 
比如:最好不要這樣: 
char* c; 
string s="1234"; 
c = s.c_str(); //c最後指向的內容是垃圾,因為s物件被析構,其內容被處理,同時,編譯器也將報錯——將一個const char *賦與一個char *。

應該這樣用: 
char c[20]; 
string s="1234"; 
strcpy(c,s.c_str()); 
這樣才不會出錯,c_str()返回的是一個臨時指標,不能對其進行操作

再舉個例子
c_str() 以 char* 形式傳回 string 內含字串
如果一個函式要求char*引數,可以使用c_str()方法: 
string s = "Hello World!";
printf("%s", s.c_str()); //輸出 "Hello World!"
s.c_str() 已經是char * 型別的了,因此strstr,strcpy等各種字串處理函式可以直接拿 s.c_str() 作為引數
原文連結:
http://blog.csdn.net/nancy_m/article/details/7583550

相關推薦

C++c_str()函式用法

      1、標準庫的string類提供了3個成員函式來從一個string得到c型別的字元陣列:c_str()、data()、copy(p,n)。         2、c_str()是Borlan

C++C_str()函式簡單用法

語法: const char *c_str(); c_str()函式返回一個指向正規C字串的指標常量, 內容與本string串相同. 這是為了與c語言相容,在c語言中沒有string型別,故必須通過string類物件的成員函式c_str()把string 物件轉換成c中

C++priority_queue的簡單用法

soj isf htm lov sni osc coj dpt kml 6rwglt柯繳滔拐僖瓢http://shufang.docin.com/dhbp31536hted8m舜棺蠢訪棵料http://huiyi.docin.com/mqnqv574629sniu6澳刀飯疤

深入理解CPP與Cbsearch函式用法

·使用besearch函式的前提(一些廢話) 首先讓我們先亮出二分法的定義: https://baike.baidu.com/item/二分法/1364267 以及二分法實現的方法: https://blog.csdn.net/sufeiboy/article/details/54401257 這些

c++sort()函式用法簡介

程式碼: #include<iostream> #include<vector> #include<string> #include<algorithm> using namespace std; int main() {

最實用的的c++string函式用法,沒有之一。

純屬原創,                                                              String函式的用法                                                          

C++memset函式用法

//複習陣列的時候,第一次見到了memset,學之。 memset:char型初始化函式 標頭檔案:<string.h> 或 <memory.h> 函式原型:void *memset(void *s , int ch , size_t  n ) m

stringc_str()函式用法

c_str()生成一個const char*指標,指向以空字元終止的陣列。 需要注意的是,這個陣列的資料是臨時的,加入這些資料被改變或者呼叫之後,其中資料就會失效。舉個例子: const char* temp; string s="1234"; c=s.c_str(); c

**matlabfprintf函式簡單用法**

1、fprintf函式:將資料按指定格式寫入到文字檔案中。 2、用法說明: fprintf(fid, format, variables); 按指定的格式將變數的值輸出到螢幕或指定檔案; fid為檔案控

**matlabNaN函式簡單用法**

第一個: dMat = zeros(6,4)+NaN dMat = NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN Na

C++system函式用法,有效配合控制檯程式

int system( const char *command ); int _wsystem( const wchar_t *command ); command: Command to be executed sample: //system.c #include <process.h&

C++sort函式用法

C++中sort函式用法 排序示例: 輸入兩個數n,t,其中n是待排的結構體個數,t=0代表用降序排序,t = 1表示用升序排序 例如這樣: 例示: jack 70 peter 96 Tom 70 smith 67 從高到低 成績 peter 96 jack 70

c++c_str()的用法詳解

//標準庫的string類提供了三個成員函式來從一個string得到c型別的字元陣列 //主要介紹c_str //c_str():生成一個const char*指標,指向以空字元終止的陣列。 //這個陣列應該是string類內部的陣列 #include <iostre

關於c++虛擬函式和介面的關係區分(簡單

虛擬函式:                 虛擬函式的作用是實現動態聯編,也就是在程式的執行階段動態地選擇合適的成員函式,在定義了虛擬函式後,可以在基類的派生類中對虛擬函式重新定義,在派生類中重新定義的函式應與虛擬函式具有相同的形參個數和形參型別。以實現統一的介面,不同定義

C++Main函式引數argc,argv用法

int main(int argc, char** argv)argc為傳入引數個數,argv是具體的引數。我知道的兩種使用方法:1.在命令列中使用,如傳入"test.exe f:\a.txt f:\b.txt",那麼:argc=3;argv[0] = test.exe (

C語言排序函式用法

C語言中沒有預置的sort函式。如果在C語言中,遇到有呼叫sort函式,就是自定義的一個函式,功能一般用於排序。 一、可以編寫自己的sort函式。 如下函式為將整型陣列從小到大排序。 void sort(int *a, int l)//a為陣列地址,l為陣列長度

C++ c_str()的用法

https://zhidao.baidu.com/question/104592558.html?qbl=relate_question_4&word=.str%28%29%20%CA%B2%C3%B4%D2%E2%CB%BC

C++仿函式/函式物件,函式指標的用法

研究這個起因是這樣的,就是今天在用priority_queue的時候,需要自定義比較函式,但是此時又不能修改需要比較的類的內容(即不能用過載<的方法),所以只能寫在外面,但是發現這樣並不能編譯通過。報的錯叫cmp(我寫的那個比較函式)不是型別名。後來

c++c_str()用法

c語言 string 沒有 對象 https clas con lan rcp string c="abc123"; char *d=new char[20]; strcpy(d,c.c_str()); cout<<"c:"<<c<<e

Oracle的substr函式簡單用法 與javasubstring區別

substr(字串,擷取開始位置,擷取長度) //返回擷取的字 substr('Hello World',0,1) //返回結果為 'H'  *從字串第一個字元開始擷取長度為1的字串 substr('Hello World',1,1) //返回結果為 'H'  *0和1都是