c++

c++ string库函数插入和删除字符的方法

小樊
81
2024-09-24 22:24:06
栏目: 编程语言

C++的<string>库提供了多种方法来插入和删除字符串中的字符。以下是一些常用的方法:

  1. 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!
  1. 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!

0
看了该问题的人还看了