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

C++基础---string类的operator=/assign

2015-09-03 18:24 549 查看

1. string类的operator=/assign

1.1 std::string::operator=

原型: string& operator= (const string& str);

说明: 把string型字符串str赋给当前字符串。

原型: string& operator= (const char* s);

说明: 把char型字符串s赋给当前字符串。

原型:string& operator= (char c);

说明: 把字符c赋给当前字符串。

代码示例:

#include <iostream>

#include <string>

using namespace std;
int main()
{
string str1, str2, str3;

str1 = "Test string: ";//c-string
str2 = 'x';            //single character
str3 = str1 + str2;    //string

cout<<"string& operator= (const char* s);"<<endl;
cout<<str1<<endl;
cout<<endl;

cout<<"string& operator= (char c);"<<endl;
cout<<str2<<endl;
cout<<endl;

cout<<"string& operator= (const string& str);"<<endl;
cout<<str3<<endl;
cout<<endl;

system("pause");

return 0;
}
=>string& operator= (const char* s);
Test string:

string& operator= (char c);
x

string& operator= (const string& str);
Test string: x


1.2 std::string::assign

原型:string& assign (const string& str);

说明: 用string型字符串str赋值给当前字符串。

代码示例:

#include <iostream>

#include <string>

using namespace std;
int main()
{
string str0="The quick brown fox jumps over a lazy dog.";

string str1;
str1.assign(str0);
cout<<"string& assign (const string& str);"<<endl;
cout<<str1<<endl;

system("pause");

return 0;
}
=>string& assign (const string& str);
The quick brown fox jumps over a lazy dog.


原型:string& assign (const string& str, size_t subpos, size_t sublen);

说明: 用string型字符串str中下标为subpos处开始拷贝sublen个字符赋值给当前字符串。

代码示例:

#include <iostream>

#include <string>

using namespace std;
int main()
{
string str0="The quick brown fox jumps over a lazy dog.";

string str2;
str2.assign(str0, 10, 9);
cout<<"string& assign (const string& str, size_t subpos, size_t sublen);"<<endl;
cout<<str2<<endl;

system("pause");

return 0;
}
=>string& assign (const string& str, size_t subpos, size_t sublen);
brown fox


原型:string& assign (const char* s);

说明: 用char型字符串s赋值给当前字符串。

代码示例:

#include <iostream>

#include <string>

using namespace std;
int main()
{
string str3;
str3.assign("c-string");
cout<<"string& assign (const char* s);"<<endl;
cout<<str3<<endl;

system("pause");

return 0;
}
=>string& assign (const char* s);
c-string


原型:string& assign (const char* s, size_t n);

说明: 用char型字符串s的前n个字符赋值给当前字符串。

代码示例:

#include <iostream>

#include <string>

using namespace std;
int main()
{
string str4;
str4.assign("pangrams are cool",7);
cout<<"string& assign (const char* s, size_t n);"<<endl;
cout<<str4<<endl;

system("pause");

return 0;
}
=>string& assign (const char* s, size_t n);
pangram


原型:string& assign (size_t n, char c);

说明: 用n个字符c赋值给当前字符串。

代码示例:

#include <iostream>

#include <string>

using namespace std;
int main()
{
string str5;
str5.assign(10,'*');
cout<<"string& assign (size_t n, char c);"<<endl;
cout<<str5<<endl;

system("pause");

return 0;
}
=>string& assign (size_t n, char c);
**********


原型:template < class InputIterator>string& assign (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 str0="The quick brown fox jumps over a lazy dog.";

string str6;
str6.assign(str0.begin()+16,str0.end()-12);
cout<<"template < class InputIterator>string& assign (InputIterator first, InputIterator last);"<<endl;
cout<<str6<<endl;

system("pause");

return 0;
}
=>template < class InputIterator>string& assign (InputIterator first, InputIterator last);
fox jumps over


原型:string& assign (initializer_list il);

说明: Copies each of the characters in il, in the same order.

代码示例:

#include <iostream>

#include <string>

using namespace std;
int main()
{
string str7;
str7.assign<int>(10,0x2D);
cout<<"string& assign (initializer_list<char> il);"<<endl;
cout<<str7<<endl;

system("pause");

return 0;
}
=>string& assign (initializer_list<char> il);
----------


参考文献:

[1] 网络资源:

http://www.cplusplus.com/reference/string/string/operator=/

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