当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ std::string::erase用法及代码示例


该函数将删除一部分字符串内容,从而缩短字符串的长度。受影响的字符取决于所使用的成员函数版本:
返回值:erase()返回* this。

  1. 语法1:擦除字符串中的所有字符
    string& string::erase ()
    // CPP code to illustrate 
    // erase() function 
      
    #include <iostream> 
    #include <string> 
    using namespace std; 
      
    // Function to demo erase() 
    void eraseDemo(string str) 
    { 
        // Deletes all characters 
        str.erase(); 
      
        cout << "After erase():"; 
        cout << str; 
    } 
      
    // Driver code 
    int main() 
    { 
        string str("Hello World!"); 
      
        cout << "Before erase():"; 
        cout << str << endl; 
        eraseDemo(str); 
      
        return 0; 
    }

    输出:

    Before erase():Hello World!
    After erase():
    
  2. 语法2:删除位置“ pos”之后的所有字符
    string& string::erase (size_type pos)
    - Throw out_of_range if idx > size().
    // CPP code to illustrate working of 
    // erase(idx) 
      
    #include <iostream> 
    #include <string> 
    using namespace std; 
      
    // Function to demo erase 
    void eraseDemo(string str) 
    { 
        // Deletes all characters except first one 
        str.erase(1); 
      
        cout << "After erase(idx):"; 
        cout << str; 
    } 
      
    // Driver code 
    int main() 
    { 
        string str("Hello World!"); 
      
        cout << "Before erase(idx):"; 
        cout << str << endl; 
        eraseDemo(str); 
      
        return 0; 
    }

    输出:


    Before erase(idx):Hello World!
    After erase(idx):H
    
  3. 语法3:从索引idx开始最多擦除* this的len个字符。
    string& string::erase (size_type idx, size_type len )
    - If len is missing, all remaining characters are removed.
    - Throw out_of_range if idx > size().
    
    // CPP code to illustrate 
    // erase(size_type idx, size_type len ) 
    #include <iostream> 
    #include <string> 
    using namespace std; 
      
    // Function to demo erase 
    void eraseDemo(string str) 
    { 
        // Deletes 4 characters from index number 1 
        str.erase(1, 4); 
      
        cout << "After erase:"; 
        cout << str; 
    } 
      
    // Driver code 
    int main() 
    { 
        string str("Hello World!"); 
      
        cout << "Before erase:"; 
        cout << str << endl; 
        eraseDemo(str); 
      
        return 0; 
    }

    输出:

    Before erase:Hello World!
    After erase:H World!
    
  4. 语法4:删除迭代器位置pos处的单个字符。
    string& string::erase (iterator pos)
    - Return the first character after the last character removed
    - If no such character is remaining then, returns 
      string::end() i.e. position after the last character.
    
    // CPP code to illustrate 
    // erase(iterator pos) 
      
    #include <iostream> 
    #include <string> 
    using namespace std; 
      
    // Function to demo erase 
    void eraseDemo(string str) 
    { 
        // Deletes character at position 4 
        str.erase(str.begin() + 4); 
      
        cout << "After erase:"; 
        cout << str; 
    } 
      
    // Driver code 
    int main() 
    { 
        string str("Hello World!"); 
      
        cout << "Before erase:"; 
        cout << str << endl; 
        eraseDemo(str); 
      
        return 0; 
    }

    输出:

    Before erase:Hello World!
    After erase:Hell World!
    
  5. 语法5:删除迭代器位置pos处的单个字符。
    string& string::erase (iterator beg, iterator end )
    - Erases all characters of the range [ beg, end)
    - Returns end i.e. the first character after the
      last character removed.
    - If no such character is remaining then, returns 
      string::end() i.e. position after the last character
    
    // CPP code to illustrate 
    // erase(iterator pos, iterator end) 
      
    #include <iostream> 
    #include <string> 
    using namespace std; 
      
    // Function to demo erase 
    void eraseDemo(string str) 
    { 
        // Deletes all characters between 0th index and 
        // str.end() - 6 
        str.erase(str.begin() + 0, str.end() - 6); 
      
        cout << "After erase:"; 
        cout << str; 
    } 
      
    // Driver code 
    int main() 
    { 
        string str("Hello World!"); 
      
        cout << "Before erase:"; 
        cout << str << endl; 
        eraseDemo(str); 
      
        return 0; 
    }

    输出:

    Before erase:Hello World!
    After erase:World!
    


相关用法


注:本文由纯净天空筛选整理自 std::string::erase in C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。