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個字符