zoukankan      html  css  js  c++  java
  • 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的末尾。

  • 相关阅读:
    Servlet中request乱码问题解决
    java对cookie的操作
    EL表达式
    MYSQL安装以及卸载 -- WINDOWS
    java接口
    HttpClient配置及运用(二)
    JVM的内存空间
    孤寂的欢愉
    论神性与人性
    使用NPOI读取Excel出错
  • 原文地址:https://www.cnblogs.com/gaoshaonian/p/12658883.html
Copyright © 2011-2022 走看看