• C++学习之STL(二)String


    1、assign

    assign方法可以理解为先将原字符串清空,然后赋予新的值作替换。

    返回类型为 string类型的引用。其常用的重载也有下列几种:

    a. string& assign ( const string& str );
    
    将str替换原字串的内容
    
    举例:
    
    string testassign = "Hello World";
    
    testassign.assign("Go home");
    
    cout<<testassign<<endl;
    
    //打印结果为 go home
    
     
    
    b. string& assign ( const string& str, size_t pos, size_t n );
    
    将str的内容从位置pos起的n个字符作为原字串的新内容赋给原字串
    
    string testassign = "Hello World";
    
    testassign.assign("Come on!", 5, 2);
    
    cout<<testassign<<endl;
    
    //打印结果为 on
    
     
    
    c. string& assign ( const char* s, size_t n );
    
    将字符数组或者字符串的首n个字符替换原字符串内容
    
    举例:
    
    string testassign = "Hello World";
    
    testassign.assign("go back to China", 7);
    
    cout<<testassign<<endl;
    
    //打印结果为go back
    
     
    
    d. string& assign ( const char* s );
    
    将字符串或者字符数组作为新内容替换原字串
    
    举例:
    
    string testassign = "Hello World";
    
    char ch[20] = "go back to shanghai";
    
    testassign.assign(ch);
    
    cout<<testassign<<endl;
    
    //打印结果为 go back to shanghai
    
     
    
    e. string& assign ( size_t n, char c );
    
    将原字串替换为n个字符c
    
    举例:
    
    string testassign = "Hello World";
    
    char ch = '?';
    
    testassign.assign(5, ch);
    
    cout<<testassign<<endl;
    
    //打印结果为?????
    
     
    
    f. template <class InputIterator>   string& assign ( InputIterator first, InputIterator last );
    
    需要include <iterator>
    
    举例:
    
    string testassign = "Hello World";
    
    testassign.assign(istream_iterator<char>(cin), istream_iterator<char>());
    
    //输入abcde
    
    cout<<testassign<<endl;
    
    //打印结果为 abcde

    2、substr

    函数原型

    string substr(size_type _Off = 0,size_type _Count = npos) const;

    参数:

    _Off:所需的子字符串的起始位置。字符串中第一个字符的索引为 0,默认值为0。
    _Count:复制的字符数目。
    返回值:一个子字符串,从其指定的位置开始。

    举例

    string str("helloworld");
    string strSub = str.substr(0, 5);

    若pos的值超过了string的大小,则substr函数会抛出一个out_of_range异常;若pos+n的值超过了string的大小,则substr会调整n的值,只拷贝到string的末尾。

  • 相关阅读:
    C# TryParse
    C#委托的学习笔记
    C#基础学习C# 8.0 In a Nut Shell
    Everything学习之三
    Everything学习笔记二
    搜索软件everything帮助文档全文翻译
    Git笔记之基础命令
    Git学习笔记
    附加属性
    日期函数
  • 原文地址:https://www.cnblogs.com/gaoshaonian/p/12658883.html
Copyright © 2020-2023  润新知