C++基础---string类的构造函数

1. string类的构造函数

1.1 default:string();

  • 原型: string();
  • 说明:默认构造函数,构造一个空字符串。
  • 代码示例:

    #include <iostream>
    #include <string>
    
    using namespace std;
    int main()
    {
        string s1;
        cout<<"string();"<<endl;
        cout<<"构造出来的字符串s1:"<<s1<<endl;
        cout<<"构造出来的字符串长度s1.size():"<<s1.size()<<endl;
        system("pause");
    }
    =>string();
      构造出来的字符串s1:
      构造出来的字符串长度s1.size():0

    1.2 copy:string(const string& str);

  • 原型: string(const string& str);
  • 说明: 拷贝构造函数,构建一个复制的结构。
  • 代码示例:

    #include <iostream>
    #include <string>
    
    using namespace std;
    int main()
    {
        string s0 = "abcdefghijklmnopqrstuvwxyz";
        string s2(s0);
        cout<<"string(const string& str);"<<endl;
        cout<<"构造出来的字符串s2:"<<s2<<endl;
        cout<<"构造出来的字符串长度s2.size():"<<s2.size()<<endl;
        system("pause");
    }
    =>string(const string& str);
      构造出来的字符串s2:abcdefghijklmnopqrstuvwxyz
      构造出来的字符串长度s2.size():26

    1.3 substring:string(const string& str, size_t pos, size_t len = npos);
    原型: string(const string& str, size_t pos, size_t len = npos);
    说明:构造子字符串的函数,从string型字符串str中下标为pos处开始拷贝len个字符。
    代码示例:

    #include <iostream>
    #include <string>
    
    using namespace std;
    int main()
    {
        string s0 = "abcdefghijklmnopqrstuvwxyz";
        string s3(s0, 11, 6);
        cout<<"string(const string& str, size_t pos, size_t len = npos);"<<endl;
        cout<<"构造出来的字符串s3:"<<s3<<endl;
        cout<<"构造出来的字符串长度s3.size():"<<s3.size()<<endl;
        system("pause");
    }
    =>string(const string& str, size_t pos, size_t len = npos);
      构造出来的字符串s3:lmnopq
      构造出来的字符串长度s3.size():6
    

    1.4 from c-string:string(const char* s);

  • 原型:string(const char* s);
  • 说明:用char型字符串s构造,拷贝以空终止符结束的字符序列。
  • 代码示例:

    #include <iostream>
    #include <string>
    
    using namespace std;
    int main()
    {
        string s4("abcdefghijklmnopqrstuvwxyz");
        cout<<"string(const char* s);"<<endl;
        cout<<"构造出来的字符串s4:"<<s4<<endl;
        cout<<"构造出来的字符串长度s4.size():"<<s4.size()<<endl;
        system("pause");
        return 0;
    }
    =>string(const char* s);
      构造出来的字符串s4:abcdefghijklmnopqrstuvwxyz
      构造出来的字符串长度s4.size():26
    

    1.5 from buffer:string(const char* s, size_t n);

  • 原型:string(const char* s, size_t n);
  • 说明:从char型字符串s的起始位置开始拷贝n个字符。
  • 代码示例:

    #include <iostream>
    
    
    #include <string>
    
    using namespace std;
    int main()
    {
        string s5("abcdefghijklmnopqrstuvwxyz", 6);
        cout<<"string(const char* s, size_t n);"<<endl;
        cout<<"构造出来的字符串s5:"<<s5<<endl;
        cout<<"构造出来的字符串长度s5.size():"<<s5.size()<<endl;
        system("pause");
        return 0;
    }
    =>string(const char* s, size_t n);
      构造出来的字符串s5:abcdef
      构造出来的字符串长度s5.size():6

    1.6 fill:string(size_t n, char c);

  • 原型:string(size_t n, char c);
  • 说明:用n个字符c构造字符串。
  • 代码示例:

    #include <iostream>
    
    
    #include <string>
    
    using namespace std;
    int main()
    {
        string s0 = "abcdefghijklmnopqrstuvwxyz";
        string s6a(6, 'a');
        string s6b(6, 97);
        cout<<"string(size_t n, char c);"<<endl;
        cout<<"构造出来的字符串s6a:"<<s6a<<endl;
        cout<<"构造出来的字符串长度s6a:"<<s6a.size()<<endl;
        cout<<"构造出来的字符串s6b:"<<s6b<<endl;
        cout<<"构造出来的字符串长度s6b:"<<s6b.size()<<endl;
        system("pause");
        return 0;
    }
    =>string(size_t n, char c);
      构造出来的字符串s6a:aaaaaa
      构造出来的字符串长度s6a:6
      构造出来的字符串s6b:aaaaaa
      构造出来的字符串长度s6b:6

    1.7 range:template < class InputIterator>string(InputIterator first, InputIterator last);
    原型:template < class InputIterator>string(InputIterator first, InputIterator last);
    说明: Copies the sequence of characters in the range [first,last), in the same order.
    代码示例:

    #include <iostream>
    
    
    #include <string>
    
    using namespace std;
    int main()
    {
        string s0 = "abcdefghijklmnopqrstuvwxyz";
        string s7(s0.begin(), s0.begin()+6);
        cout<<"template <class InputIterator> string(InputIterator first, InputIterator last);"<<endl;
        cout<<"构造出来的字符串s7:"<<s7<<endl;
        cout<<"构造出来的字符串长度s7:"<<s7.size()<<endl;
        system("pause");
        return 0;
    }
    =>template <class InputIterator> string(InputIterator first, InputIterator last);
      构造出来的字符串s7:abcdef
      构造出来的字符串长度s7:6

     

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值