重复字符串以填充多个空格
Posted
技术标签:
【中文标题】重复字符串以填充多个空格【英文标题】:repeat string to fill a number of spaces 【发布时间】:2014-03-13 16:41:01 【问题描述】:首先我想为糟糕的标题道歉,我不知道如何总结。
我正在创建一个简单的密码程序,该程序使用重复的密钥以适应明文长度。
所以如果密钥是“WATER”而明文是“PRINGLE”,那么密钥会像这样循环; “水”
我在这样做时遇到了麻烦。我不确定这是否困难,或者我只是有一个巨大的大脑放屁,但到目前为止我所拥有的只是重复了完整的字符串 X 次。
有人能指出正确的方向吗?
【问题讨论】:
不要扩展密钥或类似的东西。一个一个地遍历字符,当你跑过去时就循环回来。一个简单的方法是模运算符%
:i++ % 4
将始终是 0、1、2、3 之一。
【参考方案1】:
您可以分两步完成:
将第一个字符串重复N
(即N = ceil(length(str2)/length(str1))
)次。
获取长度等于第二个字符串的长字符串的子字符串。
代码示例: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++ 语法,它应该会给您一个想法。
【讨论】:
以上是关于重复字符串以填充多个空格的主要内容,如果未能解决你的问题,请参考以下文章