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/