【问题标题】:repeat string to fill a number of spaces重复字符串以填充多个空格
【发布时间】:2014-03-13 16:41:01
【问题描述】:

首先我想为糟糕的标题道歉,我不知道如何总结。

我正在创建一个简单的密码程序,该程序使用重复的密钥以适应明文长度。

所以如果密钥是“WATER”而明文是“PRINGLE”,那么密钥会像这样循环; “水”

我在这样做时遇到了麻烦。我不确定这是否困难,或者我只是有一个巨大的大脑放屁,但到目前为止我所拥有的只是重复了完整的字符串 X 次。

有人能指出正确的方向吗?

【问题讨论】:

  • 不要扩展密钥或类似的东西。一个一个地遍历字符,当你跑过去时就循环回来。一个简单的方法是模运算符%i++ % 4 将始终是 0、1、2、3 之一。

标签: c++ string repeat


【解决方案1】:

您可以分两步完成:

  1. 将第一个字符串重复N(即N = ceil(length(str2)/length(str1)))次。

  2. 获取长度等于第二个字符串的长字符串的子字符串。

代码示例:http://ideone.com/pZrFx9

【讨论】:

    【解决方案2】:
    string key2; //declare the string. It'll be the same length as plaintextString
    for (i = 0; i < length(plaintextString); i++ {
        key2[i] = key1[i%(length(key1))]; //you may want to assign length(key1) to a variable
    }
    

    就像 Jon 说的,你肯定会想在这里使用模数运算符。这段代码没有经过语法检查,但只要您熟悉 c++ 语法,它应该会给您一个想法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-21
      • 1970-01-01
      • 1970-01-01
      • 2021-05-20
      • 1970-01-01
      • 2011-05-27
      • 2012-10-11
      • 2014-03-16
      相关资源
      最近更新 更多