C++ 通过将第i个字符重复i次来加密字符串
介绍
C++字符串是一个固定的字母数字字符序列。它是一个连续的出现字符流,可以是数字、字符甚至特殊符号。每个字符串都有一个明确的长度。访问字符的位置从0开始。
字符串可以包含唯一或重复的字符连接在一起。它们可以被各种操作和连接操作处理。
在本文中,我们将开发一段代码,该代码以一个字符串作为输入,并显示加密后的字符串,其中第一个字符重复1次,第二个字符重复2次。这个过程重复直到字符串的长度。让我们看下面的示例来更好地理解这个主题 –
示例
示例1 – str -“g@m $”
输出 – g@@mmm $$$$
例如,下面的示例字符串还包含特殊字符,这些特殊字符根据字符串中字符的位置重复。
在本文中,我们将创建一个解决方案来计算特定位置的字符应该重复的次数。然后将提取的字符附加到生成的输出字符串,直到计数耗尽。
语法
str.length()
length()
字符串的长度可以通过length()方法来获取,该方法用于返回字符串中包含的字母数字字符和特殊符号的个数。
步骤
- 接受一个输入字符串str作为输入。
-
维护一个计数器cnt来存储每个字符应该重复的次数。它的初始值为0。
-
使用length()方法计算字符串的长度,并将其存储在名为len的变量中。
-
每次提取第i个位置的字符。
-
通过将位置i增加1来计算计数器cnt。
-
执行一个递减循环,初始值为计数器的值,将提取的字符附加到输出字符串res上。
-
每次计数器的值递减。
-
在完成所需次数的迭代后,将指针移动到下一个字符上。
示例
以下C++代码片段用于从给定的输入样本字符串创建一个加密字符串 −
//including the required libraries
#include <bits/stdc++.h>
using namespace std;
// Function to return the encrypted string
string encrypt(string str) {
//counter to store the number of times a character is repeated
int cnt = 0;
//storing the encrypted string
string res = "";
//computing the length of the string
int len = str.length();
for(int i =0 ; i<len ; ) {
//getting the count of the number of times the character will be repeated
cnt = i + 1;
//repeating the current character
while (cnt){
//extracting the character at ith index
char ch = str[i];
//adding the character to output string
res += ch;
//decrementing the count
cnt--;
}
i++;
}
cout << "Encrypted string "<< res;
}
int main() {
//taking a input string
string str = "heyy";
cout << "Input string "<< str <<"\n";;
//creating an encrypted string
encrypt(str);
return 0;
}
输出
Input string heyy
Encrypted string heeyyyyyyy
结论
在C++中,字符串的字符位置从默认的0索引开始。字符串是一个动态长度的存储结构,可以随意添加字符任意次数。在C++中可以使用+运算符来进行字符串连接。每次添加一个字符时,字符串的长度增加1。