在 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 构造函数使代码更易于阅读。