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/

### 回答1: CSDN开发的C知道AI语言模型回答: C++中的string有以下常用方法: 1. length():返回字符串的长度。 2. size():返回字符串的长度,与length()方法相同。 3. empty():判断字符串是否为空,如果为空则返回true,否则返回false。 4. clear():清空字符串。 5. append():在字符串末尾添加字符或字符串。 6. insert():在字符串的指定位置插入字符或字符串。 7. erase():删除字符串中的指定字符或子串。 8. replace():替换字符串中的指定字符或子串。 9. substr():返回字符串中指定位置和长度的子串。 10. find():查找字符串中是否包含指定的字符或子串,如果包含则返回其位置,否则返回string::npos。 11. rfind():从字符串末尾开始查找是否包含指定的字符或子串,如果包含则返回其位置,否则返回string::npos。 12. compare():比较两个字符串的大小,如果相等则返回,如果第一个字符串小于第二个字符串则返回负数,否则返回正数。 ### 回答2: C++中的string是标准库中的一个,用于处理字符串。它提供了许多方法用于字符串的操作和处理。 以下是一些常用的string方法: 1. length():返回字符串的长度。 2. size():返回字符串的长度。 3. empty():判断字符串是否为空,如果为空返回true,否则返回false。 4. clear():清空字符串。 5. push_back():在字符串的末尾添加字符。 6. pop_back():删除字符串的最后一个字符。 7. insert():在指定位置插入字符或字符串。 8. erase():删除指定位置的字符或字符串。 9. replace():用新的字符或字符串替换指定位置的字符或字符串。 10. append():将字符或字符串添加到字符串的末尾。 11. substr():返回指定位置和长度的子字符串。 12. find():查找指定字符串在原字符串中的位置。 13. rfind():从字符串的末尾开始查找指定字符串在原字符串中的位置。 14. compare():比较两个字符串是否相等。 15. c_str():将字符串转换为C风格的字符串。 16. stoi()、stof()、stod():将字符串转换为整型、浮点型或双精度浮点型。 17. to_string():将数值转换为字符串。 除了上述方法外,string还可以使用运算符来进行字符串的连接、比较和赋值操作,如"+"、"=="、"="等。 string的方法非常丰富,可以帮助我们对字符串进行灵活的操作和处理。根据具体的需要,选择合适的方法可以方便地完成字符串的各种操作。 ### 回答3: C++中的string是标准库中的一个,用于处理字符串。它包含了许多方法,以下是一些常用的方法: 1. size()/length()方法:返回字符串的长度。 2. empty()方法:判断字符串是否为空。 3. clear()方法:清空字符串。 4. assign()方法:将一个字符串赋值给另一个字符串。 5. insert()方法:在特定位置插入字符串或字符。 6. erase()方法:删除特定位置的字符或一段字符。 7. replace()方法:用另一个字符串或字符替换特定位置的字符或一段字符。 8. substr()方法:返回特定位置的子字符串。 9. find()方法:查找特定字符或字符串在字符串中第一次出现的位置。 10. rfind()方法:查找特定字符或字符串在字符串中最后一次出现的位置。 11. compare()方法:比较两个字符串的大小。 12. c_str()方法:将字符串转换为C风格的字符串(以null字符结尾的字符数组)。 13. getline()方法:从输入流中逐行读取字符串。 14. +=运算符:将另一个字符串或字符连接到当前字符串的末尾。 这些方法可以帮助我们在C++中更方便地操作字符串,使得字符串的处理更加简单和高效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值