C++中的 c_str() 函数
功能:c_str() 函數(shù)可以將 const string* 類型 轉(zhuǎn)化為 cons char* 類型
頭文件:#include<cstring>
c_str()就是將C++的string轉(zhuǎn)化為C的字符串?dāng)?shù)組,c_str()生成一個const char *指針,指向字符串的首地址
因?yàn)樵赾語言中沒有string類型,必須通過string類對象的成員函數(shù) c_str() 把 string 轉(zhuǎn)換成c中的字符串樣式
注意點(diǎn):
c_str() 這個函數(shù)轉(zhuǎn)換后返回的是一個臨時指針,不能對其進(jìn)行操作
所以因?yàn)檫@個數(shù)據(jù)是臨時的,所以當(dāng)有一個改變這些數(shù)據(jù)的成員函數(shù)被調(diào)用后,該數(shù)據(jù)就會改變失效;
例如:
#include<iostream> #include<cstring> using namespace std;int main() {const char *ptr;string s = "12345";ptr = s.c_str();cout << "s改變前ptr為:" << ptr << endl;s = "66666";cout << "s改變后ptr為:" << ptr << endl;return 0; }輸出結(jié)果可以看出 s 一變那么 ptr 就會改變;
因此要么直接將這個數(shù)據(jù)應(yīng)用或輸出,要么把它的數(shù)據(jù)用 strcpy() 函數(shù)復(fù)制到自己可以管理的內(nèi)存中;
這就不會再出現(xiàn)上面的問題了;
總結(jié)
這個函數(shù)單獨(dú)出現(xiàn)的概率不大,經(jīng)常會和其他函數(shù)一起使用,總之記住功能會用就行了;
總結(jié)
以上是生活随笔為你收集整理的C++中的 c_str() 函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++的几种遍历形式
- 下一篇: 数据结构课程设计——机票售卖系统(C++