C++ 通过将第i个字符重复i次来加密字符串

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。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程