📜  C++中的std :: 字符串:: resize()(1)

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

C++中的std::字符串::resize()

介绍

在C++中,std::字符串类(string class)提供了一个resize()函数,用于调整字符串的大小。

resize()函数可以通过添加或删除字符来增加或减少字符串的大小。当字符串变大时,新添加的字符将被赋为默认值;当字符串变小时,多余的字符将被删除。

语法

resize()函数的语法如下:

string_name.resize(new_size);

其中,string_name是std::字符串类的实例名称,new_size是将字符串调整为的新大小,而resize()函数则会将string_name字符串调整为new_size大小。

示例

下面是调用resize()函数的一个示例:

#include <iostream>
#include <string>

using namespace std;

int main()
{
   string str("Hello, World!");

   // 输出原始字符串
   cout << "原始字符串:" << str << endl;

   // 调整字符串大小
   str.resize(5);

   // 输出调整后的字符串
   cout << "调整后的字符串:" << str << endl;

   return 0;
}

上面的代码将输出以下内容:

原始字符串:Hello, World!
调整后的字符串:Hello

如您在上例中所见,字符串调整到了大小5,多余的字符被删除了。

另外,当调整字符串变大时,新添加的字符将被默认初始化。例如,要将字符串扩大至10个字母并初始化为小写b,可以使用以下代码:

string str("hello");
str.resize(10, 'b');

上述代码将在字符串"hello"的末尾增加了3个小写字母"b",字符串变为了"hellobbbbbbb"。

注意事项
  • 调整字符串大小可能会导致原始字符串被销毁,新的字符串将被创建。这可能会导致在代码中对原始字符串的指针失效。
  • 在调整字符串大小前,请确保已经分配了足够的内存。如果没有足够的内存可用,则在调整字符串大小时会导致未定义行为。
  • 调整字符串大小可能会导致未定义的行为,例如,如果使用了迭代器来访问字符串中的元素,则在调整字符串大小时可能会导致迭代器失效。
参考文献
  1. C++字符串
  2. std::字符串::resize()函数文档