c++ s.assign
时间: 2023-09-07 20:15:34 浏览: 161
`std::string`类的`assign()`函数用于将一个字符串或字符数组的内容赋值给该字符串对象。具体使用方式如下:
```cpp
string& assign (const string& str);
string& assign (const string& str, size_t subpos, size_t sublen);
string& assign (const char* s);
string& assign (const char* s, size_t n);
string& assign (size_t n, char c);
template <class InputIterator>
string& assign (InputIterator first, InputIterator last);
```
- `assign(const string& str)`:将`str`字符串的内容赋值给该字符串对象。
- `assign(const string& str, size_t subpos, size_t sublen)`:将`str`字符串从下标`subpos`开始的长度为`sublen`的子串内容赋值给该字符串对象。
- `assign(const char* s)`:将C风格的字符串`s`的内容赋值给该字符串对象。
- `assign(const char* s, size_t n)`:将C风格的字符串`s`前`n`个字符的内容赋值给该字符串对象。
- `assign(size_t n, char c)`:将`n`个字符`c`的内容赋值给该字符串对象。
- `template <class InputIterator> assign(InputIterator first, InputIterator last)`:将迭代器区间`[first, last)`范围内的内容赋值给该字符串对象。
下面是一个示例:
```cpp
#include <string>
#include <iostream>
int main() {
std::string s1("hello");
std::string s2("world");
s1.assign(s2); // 将s2的内容赋值给s1
std::cout << s1 << std::endl; // 输出:world
s1.assign(s2, 2, 3); // 将s2从下标2开始,长度为3的子串赋值给s1
std::cout << s1 << std::endl; // 输出:rld
s1.assign("hello"); // 将C风格字符串"hello"的内容赋值给s1
std::cout << s1 << std::endl; // 输出:hello
s1.assign("world", 3); // 将C风格字符串"world"的前3个字符的内容赋值给s1
std::cout << s1 << std::endl; // 输出:wor
s1.assign(5, 'a'); // 将5个字符'a'的内容赋值给s1
std::cout << s1 << std::endl; // 输出:aaaaa
std::string s3("hello, world");
s1.assign(s3.begin() + 7, s3.end()); // 将s3从下标7开始到结尾的子串赋值给s1
std::cout << s1 << std::endl; // 输出:world
return 0;
}
```
输出结果为:
```
world
rld
hello
wor
aaaaa
world
```
阅读全文