注意string與c str 使用帶來的問題

2021-09-25 14:27:23 字數 714 閱讀 1752

c_str()函式原型是:const char*c_str() const:

const _elem *c_str() const

作用:

是乙個c++函式,用於將string型別的字串轉換成c的普通字串

(因為string是c++中才出現的,c中只有char *這樣字串的概念 )

返回值:

返回乙個臨時的指標,由於是臨時的,所以在沒有出作用域之前就應該使用strcpy(),將字串內容拷貝到其他字元資料或者指標中(畢竟可讀).

返回的資料唯讀不可寫,因為是const char ;

如果函式引數需要乙個char型別的,可以用該函式進行轉換.

使用例項:

//錯誤例項

char* c;

string s="1234";

c = s.c_str();

//正確例項

char *cstr,*p;

string str ("please split this phrase into tokens");

cstr = new char [str.size()+1];

strcpy (cstr, str.c_str());

atoi 函式與c str 函式使用

c 庫函式 int atoi const char str 把引數 str 所指向的字串轉換為乙個整數 型別為 int 型 但不適用於string類串,可以使用string物件中的c str 函式進行轉換。int atoi const char str 該函式返回轉換後的長整數,如果沒有執行有效的轉...

c 中string類成員函式c str

1.string類成員函式c str 的原型 const char c str const 返回乙個以null終止的c字串 2.c str 函式返回乙個指向正規c字串的指標,內容和string類的本身物件是一樣的,通過string類的c str 函式能夠把string物件轉換成c中的字串的樣式 3....

string的c str 和data 有區別?

本機windows系統安裝了vs2008環境下,檢視xstring檔案的原始碼發現xstring類的c str data 實現如下 const elem clr or this call c str const const elem clr or this call data const 這難道有區...