C++基础---string类的clear/erase/pop_back

Posted Cainv89

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++基础---string类的clear/erase/pop_back相关的知识,希望对你有一定的参考价值。

1. string类的clear/erase/pop_back

1.1 std::string::clear

  • 原型:void clear() noexcept;
  • 说明:将字符串的内容清空,让源字符串成为一个空字符串(长度为0个字符)。
  • 代码示例:

    
    #include <iostream>
    
    
    #include <string>
    
    using namespace std;
    int main ()
    
        string str;
        cout<<"请输入一行字符,以换行符结束:"<<endl;
        getline(std::cin, str);
        cout<<"清空前:str = \\""<<str<<"\\", str.size = "<<str.size()<<endl;
        str.clear();
        cout<<"清空后:str = \\""<<str<<"\\", str.size = "<<str.size()<<endl;
        if(true == str.empty())
        
            cout<<"源字符串已被清空"<<endl;
        
        system("pause");
        return 0;
    
    =>请输入一行字符,以换行符结束:
      hello world.
      清空前:str = "hello world.", str.size = 12
      清空后:str = "", str.size = 0
      源字符串已被清空

1.2 std::string::erase

  • 原型:string& erase (size_t pos = 0, size_t len = npos);
  • 说明:删除源字符串以下标为pos开始的len个字符,返回修改后的字符串。
  • 原型:iterator erase (const_iterator p);
  • 说明:删除源字符串中迭代器p指向的字符,返回删除后迭代器的位置。
  • 原型:iterator erase (const_iterator first, const_iterator last);
  • 说明:删除源字符串迭代器范围为[first,last)内的所有字符,返回删除后迭代器的位置。
  • 代码示例:

    
    #include <iostream>
    
    
    #include <string>
    
    using namespace std;
    int main ()
    
        string str("This is an example sentence.");
        cout<<str<<endl;
    
        str.erase(10, 8);                        
        cout<<str<<endl;
    
        str.erase(str.begin()+9);           
        cout<<str<<endl;
    
        str.erase(str.begin()+5, str.end()-9);  
        cout<<str<<endl;
    
        system("pause");
        return 0;
    
    =>This is an example sentence.
      This is an sentence.
      This is a sentence.
      This sentence.

1.3 std::string::pop_back

  • 原型:void pop_back();
  • 说明:删除源字符串的最后一个字符,有效的减少它的长度。
  • 代码示例:

    
    #include <iostream>
    
    
    #include <string>
    
    using namespace std;
    int main ()
    
        string str("hello world!");
        str.pop_back();
        cout<<str<<endl;
    
        system("pause");
        return 0;
    
    =>hello world 

参考文献:
[1] 网络资源:
http://www.cplusplus.com/reference/string/string/clear/
http://www.cplusplus.com/reference/string/string/erase/
http://www.cplusplus.com/reference/string/string/pop_back/

以上是关于C++基础---string类的clear/erase/pop_back的主要内容,如果未能解决你的问题,请参考以下文章

(C++基础_STL) —— string类的基本应用

(C++基础_STL) —— string类的基本应用

C++基础---string类的clear/erase/pop_back

C++基础---string类的clear/erase/pop_back

String类的实现与深浅拷贝问题

C++中string类的详细用法