📅  最后修改于: 2023-12-03 14:59:47.338000             🧑  作者: Mango
在 C++ 中,string
是一个类,它代表一个字符串。string.Assign()
函数是其成员函数之一,可用于将一个字符串或一部分字符串赋值给另一个字符串。本文介绍了 string.Assign()
函数的使用方法和注意事项。
string.Assign()
函数的语法如下:
string& assign (const string& str); // 重载 1
string& assign (const string& str, size_t subpos, size_t sublen); // 重载 2
string& assign (const char* s, size_t n); // 重载 3
string& assign (const char* s); // 重载 4
string& assign (size_t n, char c); // 重载 5
其中,str
代表被赋值的字符串,subpos
代表 str
的起始位置,sublen
代表 str
中被赋值的长度。s
则代表一个 C 风格的字符串,n
代表该字符串的长度。
assign
函数返回一个 string
类型的引用,因此可以使用链式调用。
#include <iostream>
#include <string>
int main()
{
std::string str;
std::string str_to = "Hello World!";
str.assign(str_to);
std::cout << str << std::endl;
return 0;
}
输出结果:
Hello World!
该示例中,将字符串 str_to
赋值给了 str
。
#include <iostream>
#include <string>
int main()
{
std::string str;
std::string str_to = "Hello World!";
str.assign(str_to, 6, 5);
std::cout << str << std::endl;
return 0;
}
输出结果:
World
该示例中,从 str_to
第 6 个位置开始,将它的长度为 5 的子串赋值给了 str
。
#include <iostream>
#include <string>
int main()
{
std::string str;
const char* str_to = "Hello World!";
str.assign(str_to, 5);
std::cout << str << std::endl;
return 0;
}
输出结果:
Hello
该示例中,将 C 字符串 "Hello World!"
的前 5 个字符赋值给了 str
。
#include <iostream>
#include <string>
int main()
{
std::string str;
const char* str_to = "Hello World!";
str.assign(str_to);
std::cout << str << std::endl;
return 0;
}
输出结果:
Hello World!
该示例中,将 C 字符串 "Hello World!"
赋值给了 str
。
#include <iostream>
#include <string>
int main()
{
std::string str;
str.assign(5, 'A');
std::cout << str << std::endl;
return 0;
}
输出结果:
AAAAA
该示例中,将字符 'A'
重复 5 次,赋值给了 str
。
string.Assign()
函数时,如果被赋值的字符串(比如 str
)长度大于自身容量(比如 str.capacity()
),则 str
的容量也会自动扩容,以容纳更多字符。string.Assign()
,必须确保被操作的字符串非空。否则,程序会报错或者崩溃。