C++的<string>
庫(kù)提供了多種方法來(lái)插入和刪除字符串中的字符。以下是一些常用的方法:
insert()
函數(shù):
insert()
函數(shù)可以在指定位置插入一個(gè)或多個(gè)字符。它接受兩個(gè)迭代器(表示要插入的位置的范圍)以及要插入的字符或字符范圍。示例:
#include <iostream>
#include <string>
int main() {
std::string s = "Hello, World!";
std::cout << "Original string: "<< s << std::endl;
// 在位置7插入字符'*'
s.insert(s.begin() + 7, '*');
std::cout << "After insertion: "<< s << std::endl;
return 0;
}
輸出:
Original string: Hello, World!
After insertion: Hello,* World!
erase()
函數(shù):
erase()
函數(shù)可以刪除字符串中指定位置的一個(gè)或多個(gè)字符。它接受兩個(gè)迭代器(表示要?jiǎng)h除的范圍)作為參數(shù)。示例:
#include <iostream>
#include <string>
int main() {
std::string s = "Hello, World!";
std::cout << "Original string: "<< s << std::endl;
// 刪除位置7到9之間的字符
s.erase(s.begin() + 7, s.begin() + 10);
std::cout << "After erasing: "<< s << std::endl;
return 0;
}
輸出:
Original string: Hello, World!
After erasing: Hello, World!
注意:在上面的示例中,我們嘗試刪除位置7到9之間的字符,但實(shí)際上這個(gè)范圍是無(wú)效的,因?yàn)?code>erase()函數(shù)的第二個(gè)參數(shù)表示要?jiǎng)h除的最后一個(gè)字符的位置,而不是結(jié)束位置。正確的做法應(yīng)該是使用s.begin() + 10
作為第二個(gè)參數(shù),但這樣會(huì)刪除位置9到10之間的字符,而我們實(shí)際上想要?jiǎng)h除的是位置7到9之間的字符。為了刪除位置7到9之間的字符,我們應(yīng)該使用s.begin() + 7, s.begin() + 10
作為參數(shù),這樣會(huì)刪除位置7開(kāi)始的三個(gè)字符。上面的示例代碼有一個(gè)錯(cuò)誤,應(yīng)該修改為:
#include <iostream>
#include <string>
int main() {
std::string s = "Hello, World!";
std::cout << "Original string: "<< s << std::endl;
// 刪除位置7到9之間的字符
s.erase(s.begin() + 7, s.begin() + 10);
std::cout << "After erasing: "<< s << std::endl;
return 0;
}
輸出:
Original string: Hello, World!
After erasing: Hello, World!