一、基礎用法
string insert函數是c++中的一個非常重要的字元串操作函數,它用於在字元串中插入字元、字元串或者其他類型的數據。insert函數的基本用法如下:
string insert (size_t pos, const string& str); string insert (size_t pos, const char* s); string insert (size_t pos, const char* s, size_t n); string insert (size_t pos, size_t n, char c);
上述四個函數分別用於在字元串的指定位置插入字元串str、字元指針s、指定字元數的字元指針s,以及指定數量的字元c。下面是一個簡單的插入示例:
#include using namespace std; int main() { string str1 = "Hello World!"; str1.insert(6, "C++ "); cout << str1 << endl; // Hello C++ World! return 0; }
上面的代碼中,使用insert函數在字元串的第六個位置插入了”C++ “。輸出結果為”Hello C++ World!”。
二、高級用法
除了基本用法外,insert函數還可以實現一些高級的插入操作,下面將介紹幾種常用的高級用法:
1. 插入子串
使用insert函數插入子串需要注意一些細節。首先,插入的子串需要用雙引號括起來;其次,插入的位置是子串的起始位置;最後,插入的長度是子串的長度。下面的示例演示了如何在字元串中插入子串:
#include using namespace std; int main() { string str1 = "Hello World!"; string str2 = "C++ "; str1.insert(6, str2, 0, str2.size()); //插入str2的子串 cout << str1 << endl; // Hello C++ World! return 0; }
上面的代碼中,使用insert函數在字元串的第六個位置插入了str2的子串。輸出結果為”Hello C++ World!”。
2. 插入重複字元串
insert函數還可以用於插入重複的字元串,只需要指定插入的數量即可。下面的示例演示了如何在字元串中插入重複的字元串:
#include using namespace std; int main() { string str1 = "World!"; str1.insert(str1.begin(), 3, 'H'); cout << str1 << endl; //HHHWorld! return 0; }
上面的代碼中,使用insert函數在字元串的起始位置插入了3個字元’H’。輸出結果為”HHHWorld!”。
3. 插入其他類型的數據
insert函數還可以用於插入其他類型的數據,比如整型、浮點型等等。只需要先將其他類型的數據轉換為字元串,然後再進行插入即可。下面的示例演示了如何在字元串中插入整型數據:
#include #include using namespace std; int main() { string str = "World!"; int num = 100; stringstream ss; ss << num; str.insert(0, ss.str()); cout << str << endl; // 100World! return 0; }
上面的代碼中,首先將整型數據num通過stringstream流轉換為字元串,然後使用insert函數在字元串的起始位置插入該字元串。輸出結果為”100World!”。
4. 使用迭代器插入
除了使用位置參數插入,在使用insert函數時還可以使用迭代器來進行插入操作。
#include #include using namespace std; int main(){ string str = "World"; str.insert(str.begin() + 2, 'H'); cout << str << endl; //WoHrld return 0; }
上面的代碼中,使用insert函數在字元串的第2個位置插入了字元’H’。輸出結果為”WoHrld”。
三、總結
本文介紹了c++中字元串操作函數insert的多個用法。除了基本的函數用法外,還介紹了插入子串、插入重複字元串、插入其他類型的數據和使用迭代器插入等高級用法。使用insert函數可以非常方便地在字元串中進行插入操作。
原創文章,作者:KWCAU,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/333226.html