来源:https://cplusplus.com/reference/string/string/assign/
序号 | 函数原型 |
---|---|
string (1) | string& assign (const string& str); |
substring (2) - c++11 | string& assign (const string& str, size_t subpos, size_t sublen); |
substring (2) - c++14 | string& assign (const string& str, size_t subpos, size_t sublen = npos); |
c-string (3) | string& assign (const char* s); |
buffer (4) | string& assign (const char* s, size_t n); |
fill (5) | string& assign (size_t n, char c); |
range (6) | template |
initializer list(7) | string& assign (initializer_list |
move (8) | string& assign (string&& str) noexcept; |
Assign content to string
Assigns a new value to the string, replacing its current contents.
-
(1) string Copies str.
-
(2) substring Copies the portion of str that begins at the character position subpos and spans sublen characters (or until the end of str, if either str is too short or if sublen is string::npos).
-
(3) c-string Copies the null-terminated character sequence (C-string) pointed by s.
-
(4) buffer Copies the first n characters from the array of characters pointed by s.
-
(5) fill Replaces the current value by n consecutive copies of character c.
-
(6) range Copies the sequence of characters in the range [first,last), in the same order.
-
(7) initializer list Copies each of the characters in il, in the same order.
-
(8) move Acquires the contents of str. str is left in an unspecified but valid state.
Parameters
-
str Another string object, whose value is either copied or moved.
-
subpos Position of the first character in str that is copied to the object as a substring. If this is greater than str's length, it throws out_of_range. Note: The first character in str is denoted by a value of 0 (not 1).
-
sublen Length of the substring to be copied (if the string is shorter, as many characters as possible are copied). A value of string::npos indicates all characters until the end of str.
-
s Pointer to an array of characters (such as a c-string).
-
n Number of characters to copy.
-
c Character value, repeated n times.
-
first, last Input iterators to the initial and final positions in a range. The range used is [first,last), which includes all the characters between first and last, including the character pointed by first but not the character pointed by last. The function template argument InputIterator shall be an input iterator type that points to elements of a type convertible to char. If InputIterator is an integral type, the arguments are casted to the proper types so that signature (5) is used instead.
-
il An initializer_list object. These objects are automatically constructed from initializer list declarators.
size_t
is an unsigned integral type.
Return Value
*this
Example
// string::assign
#include <iostream>
#include <string>
int main ()
{
std::string str;
std::string base="The quick brown fox jumps over a lazy dog.";
// used in the same order as described above:
str.assign(base);
std::cout << str << '\n';
str.assign(base,10,9);
std::cout << str << '\n'; // "brown fox"
str.assign("pangrams are cool",7);
std::cout << str << '\n'; // "pangram"
str.assign("c-string");
std::cout << str << '\n'; // "c-string"
str.assign(10,'*');
std::cout << str << '\n'; // "**********"
str.assign<int>(10,0x2D);
std::cout << str << '\n'; // "----------"
str.assign(base.begin()+16,base.end()-12);
std::cout << str << '\n'; // "fox jumps over"
return 0;
}
Output:
The quick brown fox jumps over a lazy dog.
brown fox
pangram
c-string
**********
----------
fox jumps over