學習記錄1 1 string類

2021-09-12 07:55:02 字數 2482 閱讀 9696

標頭檔案所有操作都需要呼叫此標頭檔案

過載操作符

索引[ ](第乙個是0)

合併字串+(注意左右操作物件不能都是字串字面值)

類似的還有==、、!=和+、-、=

c ++字串支援常見的比較操作符(>,>=,=,

另乙個功能強大的比較函式是成員函式compare()。他支援多引數處理,支援用索引值和長度定位子串來進行比較。他返回乙個整數來表示比較結果,返回值意義如下:0-相等 、>0-大於、<0-小於。

輸入getline(輸入流,字串,分隔符) 第三個引數預設是換行,任何分隔符都可以,表示輸到這裡終止,常見的輸入流有cin

相似的有cin.getline(字元

指標(char*),字元個數n(int),結束符(char))

方法:返回長度size和length(用法完全相等)

判斷是否為空empty() 如果空返回ture

字串搜尋find(目標字串,搜尋的開始位置)正向搜尋輸出第乙個搜到的索引數,沒搜到返回特殊整數值string::npos

refind 反向(向前)搜尋

切片substr(起始位置,終止位置) 注意這個是傳值呼叫,且前開後閉

插入insert(插入位置,插入字串) 不支援傳入單個字元,這時的單個字元必須寫成字串形式(eg.「s」)

倒置串

reverse(str1.begin(), str1.end());

cout << "倒置串:" << str1 << endl;

cout << endl;

刪除erase()有三種用法:(1)erase(pos,n); 刪除從pos開始的n個字元,比如erase(0,1)就是刪除第乙個字元(2)erase(position);刪除position處的乙個字元(position是個string型別的迭代器)(3)erase(first,last);刪除從first到last之間的字(first和last都是迭代器)函式原型分別是(1)string& erase( size_t pos = 0, size_t n = npos );(2)iterator erase ( iterator position );(3)iterator erase ( iterator first, iterator last )

迭代器使用:

獲取字串的第乙個字元

string::const_iterator iter = str1.begin();

cout << *iter << endl;

cout << endl;

獲取字串的最後乙個字元

iter = str1.end();//end是指向最後乙個字元後面的元素,而且不能輸出,所以cout << *it << endl;這樣輸出會報錯

string類與c風格字串的轉換

char[ ] 轉換成string

這個與char*的情況相同,也可以直接賦值,但是也會出現上面的問題,需要同樣的處理。 

- 字元陣列轉化成string型別:

char ch = "abcdefg";

string str(ch); //也可string str = ch;

或者char ch = "abcdefg";

string str;

str = ch; //在原有基礎上新增可以用str += ch;

5、string轉換成char[ ]

string物件轉換成c風格的字串:

const char *str = s.c_str();

這是因為為了防止字元陣列被程式直接處理c_str()返回了乙個指向常量陣列的指標。 

由於我們知道string的長度可以根據length()函式得到,又可以根據下標直接訪問,所以用乙個迴圈就可以賦值了,這樣的轉換不可以直接賦值。

string str = "hello world";

int len=str.length();

char ch[255]={};

for( int i=0;ich[i] = str[i];

ch[len+1] = '\0';

printf("%s\n", ch);

cout<

OpenCV學習記錄11

一 學習內容 1 開操作 2 閉操作 3 形態學梯度操作 4 頂帽 5 黑帽 二 記錄 include include include using namespace cv mat src,dst1,dst2,dst3,dst4,dst5 dst6 int element default size ...

python學習記錄(11)

0.下邊的列表分片操作會列印什麼內容 list1 1,3,2,9,7,8 list1 2 5 2,9,7 1.請問 list1 0 和 list1 0 1 一樣嗎?不一樣,list1 0 返回第0個元素的值,list1 0 1 返回乙個只含有第0個元素的列表。2.如果你每次想從列表的末尾取出乙個元素...

C 學習之string類

string類 string初始化 示例 include includeusing namespace std int main string s1 hello world 把字串賦給當前字串s1 cout string字元操作 示例 include includeusing namespace s...