C++的<string>
库提供了多种方法来插入和删除字符串中的字符。以下是一些常用的方法:
insert()
函数:
insert()
函数可以在指定位置插入一个或多个字符。它接受两个迭代器(表示要插入的位置的范围)以及要插入的字符或字符范围。示例:
#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()
函数:
erase()
函数可以删除字符串中指定位置的一个或多个字符。它接受两个迭代器(表示要删除的范围)作为参数。示例:
#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之间的字符,但实际上这个范围是无效的,因为erase()
函数的第二个参数表示要删除的最后一个字符的位置,而不是结束位置。正确的做法应该是使用s.begin() + 10
作为第二个参数,但这样会删除位置9到10之间的字符,而我们实际上想要删除的是位置7到9之间的字符。为了删除位置7到9之间的字符,我们应该使用s.begin() + 7, s.begin() + 10
作为参数,这样会删除位置7开始的三个字符。上面的示例代码有一个错误,应该修改为:
#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!