標頭檔案所有操作都需要呼叫此標頭檔案
過載操作符:
索引[ ](第乙個是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...