目录
一.assign函数是什么
在C++中, assign 是 std::string 类的一个成员函数,用于给字符串对象赋值,可以替换字符串对象中的内容为另一个字符串或字符串的一部分。 std::string 的 assign 函数有多个重载版本,允许不同的赋值方式。
基本用法
以下是 std::string 类 assign 函数的一些常见用法:
1. 替换为另一个字符串:
std::string str1;
std::string str2 = "Hello World";
str1.assign(str2); // str1 现在包含 "Hello World"
2. 替换为字符串的一部分:
std::string str = "Hello World";
std::string part;
part.assign(str, 6, 5); // part 现在包含 "World" (从索引6开始,长度为5)
3. 替换为字符的重复序列:
std::string repeated;
repeated.assign(10, 'a'); // repeated 现在包含 "aaaaaaaaaa"
函数原型
以下是 std::string::assign 的几种函数原型:
void assign(const std::string& str);
void assign(const std::string& str, size_type pos, size_type len = npos);
void assign(const char* s, size_type n);
void assign(const char* s);
void assign(size_type n, char c);
参数说明
第一个版本接受一个 std::string 对象作为参数,将当前字符串对象的内容替换为传入字符串的内容。
第二个版本接受一个 std::string 对象、一个起始位置 pos 和一个长度 len 作为参数,将当前字符串对象的内容替换为传入字符串从 pos 开始的 len 个字符的子串。如果 len 被设置为 std::string::npos (这是 std::string 类的一个特殊值,表示直到字符串的末尾),则子串将从 pos 开始一直到传入字符串的末尾。
第三个和第四个版本接受一个C风格的字符串 s 和一个长度 n 或者整个字符串,将当前字符串对象的内容替换为C字符串的前 n 个字符或整个字符串。
最后一个版本接受一个字符 c 和一个数量 n ,将当前字符串对象的内容替换为字符 c 重复 n 次的序列。
二.assign函数怎么用
示例代码
#include <iostream>
#include <string>
int main() {
std::string original = "Original string";
std::string copy;
// 完全赋值
copy.assign(original);
std::cout << "Assigned string: " << copy << std::endl;
// 部分赋值
copy.assign(original, 5, 6); // 从索引5开始,长度为6
std::cout << "Assigned substring: " << copy << std::endl;
// 重复字符赋值
copy.assign(10, '*');
std::cout << "Assigned repeated characters: " << copy << std::endl;
return 0;
}
使用 assign 方法可以灵活地对 std::string 对象进行赋值操作,无论是整体替换,部分替换,还是创建重复字符的序列。