📜  C++ string.Assign()函数(1)

📅  最后修改于: 2023-12-03 14:59:47.338000             🧑  作者: Mango

C++ string.Assign()函数

在 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 类型的引用,因此可以使用链式调用。

操作示例
重载 1
#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

重载 2
#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

重载 3
#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

重载 4
#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

重载 5
#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(),必须确保被操作的字符串非空。否则,程序会报错或者崩溃。