您的位置:首页 > 编程语言 > C语言/C++

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

2015-09-03 17:59 866 查看

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


参考文献:

[1] 网络资源: http://www.cplusplus.com/reference/string/string/string/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: