淺談C++中replace()方法_C 語言

來源:互聯網
上載者:User

本文主要針對c++中常用replace函數用法給出九個範例程式:

用法一: 

/* *用str替換指定字串從起始位置pos開始長度為len的字元  *string& replace (size_t pos, size_t len, const string& str);  */ int main() {  string line = "this@ is@ a test string!";  line = line.replace(line.find("@"), 1, ""); //從第一個@位置替換第一個@為空白  cout << line << endl;  return 0; } 

運行結果:

用法二: 

/* *用str替換 迭代器起始位置 和 結束位置 的字元  *string& replace (const_iterator i1, const_iterator i2, const string& str);  */ int main() {  string line = "this@ is@ a test string!";  line = line.replace(line.begin(), line.begin()+6, ""); //用str替換從begin位置開始的6個字元  cout << line << endl;  return 0; } 

運行結果:

用法三: 

/* *用substr的指定子串(給定起始位置和長度)替換從指定位置上的字串  *string& replace (size_t pos, size_t len, const string& str, size_t subpos, size_t sublen);  */ int main() {  string line = "this@ is@ a test string!";  string substr = "12345";  line = line.replace(0, 5, substr, substr.find("1"), 3); //用substr的指定子串(從1位置數共3個字元)替換從0到5位置上的line  cout << line << endl;  return 0; } 

運行結果:

用法四:string轉char*時編譯器可能會報出警告,不建議這樣做 

/* *用str替換從指定位置0開始長度為5的字串  *string& replace(size_t pos, size_t len, const char* s);  */ int main() {  string line = "this@ is@ a test string!";  char* str = "12345";  line = line.replace(0, 5, str); //用str替換從指定位置0開始長度為5的字串  cout << line << endl;  return 0; } 

運行結果:

用法五:string轉char*時編譯器可能會報出警告,不建議這樣做 

/* *用str替換從指定迭代器位置的字串  *string& replace (const_iterator i1, const_iterator i2, const char* s);  */ int main() {  string line = "this@ is@ a test string!";  char* str = "12345";  line = line.replace(line.begin(), line.begin()+9, str); //用str替換從指定迭代器位置的字串  cout << line << endl;  return 0; } 

運行結果:

用法六:string轉char*時編譯器可能會報出警告,不建議這樣做 

/* *用s的前n個字元替換從開始位置pos長度為len的字串  *string& replace(size_t pos, size_t len, const char* s, size_t n);  */ int main() {  string line = "this@ is@ a test string!";  char* str = "12345";  line = line.replace(0, 9, str, 4); //用str的前4個字元替換從0位置開始長度為9的字串  cout << line << endl;  return 0; } 

運行結果:

用法七:string轉char*時編譯器可能會報出警告,不建議這樣做 

/* *用s的前n個字元替換指定迭代器位置(從i1到i2)的字串  *string& replace (const_iterator i1, const_iterator i2, const char* s, size_t n);  */ int main() {  string line = "this@ is@ a test string!";  char* str = "12345";  line = line.replace(line.begin(), line.begin()+9, str, 4); //用str的前4個字元替換指定迭代器位置的字串  cout << line << endl;  return 0; } 

運行結果:

用法八: 

/* *用重複n次的c字元替換從指定位置pos長度為len的內容  *string& replace (size_t pos, size_t len, size_t n, char c);  */ int main() {  string line = "this@ is@ a test string!";  char c = '1';  line = line.replace(0, 9, 3, c); //用重複3次的c字元替換從指定位置0長度為9的內容  cout << line << endl;  return 0; } 

運行結果:

用法九: 

/* *用重複n次的c字元替換從指定迭代器位置(從i1開始到結束)的內容  *string& replace (const_iterator i1, const_iterator i2, size_t n, char c);  */ int main() {  string line = "this@ is@ a test string!";  char c = '1';  line = line.replace(line.begin(), line.begin()+9, 3, c); //用重複3次的c字元替換從指定迭代器位置的內容  cout << line << endl;  return 0; } 

運行結果:

註:所有使用迭代器類型的參數不限於string類型,可以為vector、list等其他類型迭代器。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.