C++ STL string字符串詳解和使用方法

頭文件<string>

在這裏插入圖片描述在這裏插入圖片描述

操作

在這裏插入圖片描述

string操作的實參

在這裏插入圖片描述
在這裏插入圖片描述

構造函數和析構函數

在這裏插入圖片描述

注意

你不能以一個單字符初始化某字符串,但是可以這樣做:

	string a('a');//錯誤
	string b(1, 'a');//正確
	string c({ 'a' });//正確

在這裏插入圖片描述

表示存在一個從const char* 到string的自動類型轉換,但不存在一個從char到string的自動類型轉換.


string和C-String

C++ STL將字符串字母常量的類型由char*改變爲const char*.爲了提供兼容性,還規定了可從const char*隱式轉換爲char*.

返回指向以’\0’結尾的不可變數組的指針

注意:

'\0'在string中並不具有特殊意義

有三個函數可以將string內容轉換爲字符數組或C-string:

1. c_str()data()可以得到string對應的C-string,所得到的結果和以’\0’結尾的字符數組一樣

在這裏插入圖片描述
在這裏插入圖片描述

2.copy()將string內容複製到調用者提供的字符數組中,其末尾不添加'\0'字符.

在這裏插入圖片描述

複製[_Off, _Off + _Count) 到 [_Ptr, _Ptr + _Count)

使用例子:

int main()
{
	string b("123456");
	cout << atoi(b.data()) << endl;
	cout << atoi(b.c_str()) << endl;
	char buffer[10];
	b.copy(buffer, 10);
}

在這裏插入圖片描述

大小和容量

一個string存在三種"大小" :

1.size()length():返回string的現有字符數,兩個函數等效

2.max_size():返回string最多能夠包含的字符數。與PC本身的限制有關係,返回值一般而言是索引類型之最大值減一。

之所以減一有兩個原因:1.最大值本身是npos.2.具體實現過程中有可能在內部緩衝區末尾添加一個’\0’,以便將這個string當作C-string使用。

3.capacity():重新分配內存之前,string所能包含的最大字符數.

注意

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

元素訪問

有兩種方法可以訪問單一字符:下標操作符[]和成員函數at(),C++11還提供了front()back()用來訪問第一字符和最末字符.

注意:

在這裏插入圖片描述

比較

在這裏插入圖片描述
在這裏插入圖片描述

更改內容

賦值

在這裏插入圖片描述
在這裏插入圖片描述

交換

在這裏插入圖片描述
在這裏插入圖片描述

清空

在這裏插入圖片描述

插入和移除字符

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

子字符串及字符串接合

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

i/o操作

在這裏插入圖片描述

getline()

在這裏插入圖片描述
在這裏插入圖片描述

搜索和查找

在這裏插入圖片描述
在這裏插入圖片描述

npos的意義

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

數值轉換

在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章