在 C++ 中创建特定长度的字符串


在 C++ 中,字符串是各种字母数字和特殊字符的集合。我们可以使用 C++ 中的“string”数据类型创建字符串。

问题陈述

我们给定一个字符串的长度和一个单个字符,我们需要生成一个包含该单个字符的给定长度的字符串。

在 C++ 中,我们可以通过硬编码值来定义特定长度的字符串,但是当我们需要生成不同长度的字符串并使用给定字符时,我们需要使用以下方法。

示例

以下是上述问题陈述的示例。

输入

len = 5, character = ‘p’

输出

‘PPPPP’

解释

它使用字符“P”生成长度为 5 的字符串。

输入

len = 10, character = ‘L’

输出

‘LLLLLLLLLL’

解释

它使用字符“L”生成长度为 10 的字符串。

使用以下方法解决上述问题。

使用 String() 构造函数

在 C++ 中,string() 构造函数允许我们使用特定字符创建特定长度的字符串。它以长度作为第一个参数,以字符作为第二个参数。

语法

用户可以按照以下语法使用 string() 构造函数。

string str(Len, character);

参数

  • Len - 字符串的长度。

  • Character - 用于生成字符串的字符。

示例

在下面的示例中,我们取“5”作为字符串的长度,“a”作为字符串的字符。之后,我们使用了 string() 构造函数并生成了长度为 5 的字符串。

在输出中,我们可以看到字符串总共包含 5 个“a”字符。

#include <bits/stdc++.h>
using namespace std;
int main(){
   int Len;
   char character;
   Len = 5;
   character = 'a';
   cout << "Entered string length is " << Len << endl;
   cout << "Entered character is " << character << endl;
   // use the string() constructor
   string str(Len, character);
   // print the string
   cout << "Resultant string is " << str;
   return 0;
}

输出

Entered string length is 5
Entered character is a
Resultant string is aaaaa
  • 时间复杂度 - O(Len),因为构造函数需要进行迭代才能创建字符串。

  • 空间复杂度 - O(Len),因为它根据字符串的长度占用空间。

使用 append() 方法

在 C++ 中,append() 方法允许我们将多个字符追加到字符串中。例如,我们可以将不同的字符或单个字符多次追加到字符串中。

语法

用户可以按照以下语法使用 append() 方法生成长度为 N 的字符串。

str.append(Len, character);

append() 方法以字符总数作为第一个参数,以字符作为第二个参数。

示例

在此示例中,我们取 20 作为字符串长度,“j”作为字符串字符。之后,我们使用了 append() 方法将字符“j”追加 20 次到字符串“str”中。

在输出中,我们可以看到字符串总共包含 20 个“j”字符。

#include <iostream>
using namespace std;
int main(){
   int Len;
   char character;
   string str;
   Len = 20;
   character = 'j';
   cout << "Entered string length is " << Len << endl;
   cout << "Entered character is " << character << endl;
   // using the append function to add a character
   str.append(Len, character);
   // print the string
   cout << "Resultant string is " << str;
   return 0;
}

输出

Entered string length is 20
Entered character is j
Resultant string is jjjjjjjjjjjjjjjjjjjj
  • 时间复杂度 - O(Len)。

  • 空间复杂度 - O(Len)。

使用 for 循环

在 C++ 中,我们可以使用 for 循环进行迭代。在这里,我们可以使用“+”运算符在 for 循环的每次迭代中将单个字符追加到字符串中。在完成 for 循环的 N 次迭代后,我们可以生成长度为 N 的字符串。

语法

用户可以按照以下语法使用 for 循环生成长度为 N 的字符串。

for (int i = 0; i < Len; i++){
   str = str + character;
}

在上述语法中,我们将字符追加到字符串中。

示例

在下面的示例中,我们取 30 作为字符串长度,“8”作为字符。之后,我们进行 for 循环的总共“Len”次迭代,并在每次迭代中将“8”追加到“str”中。

在输出中,我们可以看到字符串包含 30 个“8”字符。

#include <iostream>
using namespace std;
int main(){
   int Len;
   char character;
   string str;
   Len = 30;
   character = '8';
   cout << "Entered string length is " << Len << endl;
   cout << "Entered character is " << character << endl;
   // using the append function to add a character
   // using the for loop
   for (int i = 0; i < Len; i++) {
      str = str + character;
   }
   // print the string
   cout << "Resultant string is " << str;
   return 0;
}

输出

Entered string length is 30
Entered character is 8
Resultant string is 888888888888888888888888888888
  • 时间复杂度 - O(Len),因为我们使用 for 循环进行 Len 次迭代。

  • 空间复杂度 - O(Len)。

结论

在本教程中,我们学习了三种生成包含单个字符的长度 N 字符串的不同方法。第一种方法使用 string() 构造函数,第二种方法使用 append() 方法,第三种方法使用 for 循环。

这里,所有三种方法的时间和空间复杂度都相同,但是使用 string 构造函数使代码更易于阅读。

更新于: 2023-07-18

6K+ 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告