目录
//构造1 //string(const char *s)//初始为c风格字符串
//构造2 //string(size_type n,char c) string对象被初始化为n个字符c
//构造3 ///string(const string &string) 将string对象初始化为string对象str
//构造5 //string(const char *s,size_type n)将string对象初始化为s指向的前n个字符
//构造6 //template string(Iter begin,Iter end)
C++11新增两个构造函数,有兴趣的小伙伴可以自行查阅。
废话不多说,上代码
//构造1
//string(const char *s)//初始为c风格字符串
string s1("I am the best 1");
cout << "s1:" << s1 << endl;
输出:s1:I am the best 1
//构造2
//string(size_type n,char c) string对象被初始化为n个字符c
string s2(20, '$');
cout << "s2:" << s2 << endl;
输出:s2:$$$$$$$$$$$$$$$$$$$$
//构造3
///string(const string &string) 将string对象初始化为string对象str
string s3(s1);
cout << "s3:" << s3 << endl;
输出:s3:I am the best 1
//构造4
//string()默认构造
string s4;
cout << "s4:" <<s4<<endl;
输出:s4:
//构造5
//string(const char *s,size_type n)将string对象初始化为s指向的前n个字符
char c[] = "0123456789";
string s5(c,5);//0->4
cout << "s5:" << s5 << endl;
输出:s5:01234
//构造6
//template<class Iter> string(Iter begin,Iter end)
char c2[]= "0123456789";
string s6(c2 + 1, c2 + 7);
cout << "s6:" << s6 << endl;
输出:s6:123456
//构造6again
string temp ("0123456789");
string s6_again(&temp[0], &temp[9]);//由于对象名不是地址,因此需要加取地址符
cout << "s6_again:" << s6_again << endl;
输出:s6_again:012345678
//构造7
//string(const string &str,string size_type pos=0,size_type n=npos)
//将string对象初始化为str从pos(包括)开始的n个字符子字符串
string c4("0123456789");
string s7(temp, 0, 5);
cout << "s7:" << s7<< endl;
输出:s7:01234
如果帮到你的话点个关注
一起进步交流!!!