C++ Primer:string构造函数总结


1. string的构造函数

string的构造函数描述
string s默认构造函数,元素个数为空
string s(n,‘a’)s是由n个’a’组成的字符串
string s{‘a’,‘b’,…}将初始化列表拷贝到s
string s(cp)
string s(cp,n)
将cp指向的数组拷贝到s,数组必须以空字符结尾
将从cp开始的n个字符拷贝到s
string s1(s2)
string s1(s2,pos)
string s1(s2,pos,len)
string s(b,e)
将s2拷贝到s1
将s2中下标从pos开始的字符拷贝到s1
将s2中下标从pos开始的len个字符拷贝到s1
将迭代器[b,e)内的元素拷贝到s

2. 实例

// 编译环境:MinGW
#include <iostream>
#include <string>
using namespace std;
void show(string &s);

int main()
{
    //1、默认构造函数,元素个数为空
    string s1;
    show(s1);
    cout << "-------------------" << endl;

    //2、将初始化列表拷贝到s
    string s2{'a', 'b', 'c'};
    show(s2);
    cout << "-------------------" << endl;

    //3、s是由3个'a'组成的字符串
    string s3(3, 'a');
    show(s3);
    cout << "-------------------" << endl;

    //4、将cp1指向的数组拷贝到s,数组必须以空字符结尾
    char cp1[] = {'a', 'b', '\0'};
    string s4(cp1);
    show(s4);
    //5、将从cp2开始的2个字符拷贝到s
    const char *cp2 = {"ab"};
    string s5(cp2, 2);
    show(s5);
    cout << "-------------------" << endl;

    //6、将s2拷贝到s1
    string s = "abc";
    string s6(s);
    show(s6);
    //7、将s2中下标从pos开始的字符拷贝到s1
    string s7(s, 2);
    show(s7);
    //8、将s2中下标从pos开始的len个字符拷贝到s1
    string s8(s, 1, 2);
    show(s8);
    //9、将迭代器[b,e)内的元素拷贝到s
    string s9(s.begin(), s.end());
    show(s9);

    return 0;
}
void show(string &s)
{
    static int i = 0;
    ++i;
    cout << "s" << i << ": " << s << endl;
}

运行结果

3. 总结

  1. 若构造空串,则选择string s
  2. 若构造n个相同字符的字符串,则选择string s(n,‘a’)
  3. 若构造n个不同字符的字符串,则选择string s{‘a’,‘b’,…}
  4. 若已存在数组,需拷贝其元素,则选择string s(cp)和string s(cp,n)
  5. 若已存在字符串,则选择string s1(s2)、string s1(s2,pos)、string s1(s2,pos,len)、string s(b,e)
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值