C++中string

C++中string erase函數的使用

erase函數的原型如下:
(1)string& erase ( size_t pos = 0, size_t n = npos );
(2)iterator erase ( iterator position );
(3)iterator erase ( iterator first, iterator last );
也就是說有三種用法:
(1)erase(pos,n); 刪除從pos開始的n個字符,比如erase(0,1)就是刪除第一個字符
(2)erase(position);刪除position處的一個字符(position是個string類型的迭代器)
(3)erase(first,last);刪除從first到last之間的字符(first和last都是迭代器)
下面給你一個例子:
// string::erase
#include <iostream>
#include <string>
using namespace std;

int main ()
{
  string str ("This is an example phrase.");
  string::iterator it;

  // 第(1)種用法
  str.erase (10,8);
  cout << str << endl;        // "This is an phrase."

  // 第(2)種用法
  it=str.begin()+9;
  str.erase (it);
  cout << str << endl;        // "This is a phrase."

  // 第(3)種用法
  str.erase (str.begin()+5, str.end()-7);
  cout << str << endl;        // "This phrase."
  return 0;
}

你的假如是刪除數組中的一項,並不能說明erase的用法。

 

substr函數 

string s("12345asdf");

string a = s.substr(0,5);     //獲得字符串s中從第0位開始的長度爲5的字符串

 

substr(字符串,截取開始位置,截取長度) //返回截取的字

substr('Hello World',0,1) //返回結果爲 'H'  *從字符串第一個字符開始截取長度爲1的字符串

substr('Hello World',1,1) //返回結果爲 'H'  *0和1都是表示截取的開始位置爲第一個字符

substr('Hello World',2,4) //返回結果爲 'ello'

substr('Hello World',-3,3)//返回結果爲 'rld' *負數(-i)表示截取的開始位置爲字符串右端向左數第i個字符

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