将C ++文本放入方形

时间:2016-01-29 01:03:13

标签: c++

我试图在C ++中获取一串文本,并将其放置在方形中进行编码。例如,"紫色衬衫"将编码为......

selenium.common.exceptions.WebDriverException: 
Message: Unable to start phantomjs with ghostdriver: 
[Errno 2] No such file or directory: 'phantomjs'

然后,该函数应通过逐列读取来打印已解码的字符串。例如," PLHUEIR RPST"将是上面编码方块的解码版本。

正方形的宽度通过引用传递给函数。广场内的任何额外空间都应占用空格和空间。一段时间。例如,如果传递的宽度为5,则#34;紫色衬衫"将编码为......

P U R P
L E   S
H I R T 

这将打印为" PERU TRS PH IL。"

2 个答案:

答案 0 :(得分:0)

制作一个宽度等于所选方形宽度和高度的矩阵,其宽度等于输入字符串的长度/所选宽度+ 1.将字符串存储在此矩阵中,然后按列打印矩阵。我将实际编码作为练习留给读者。

答案 1 :(得分:0)

首先,您需要更详细地解释如何这些字将被拆分为行和列。一个单词应分成多少行和列?

让我们开始吧。

// These attributes needs be programmed
// If a word is 4 letters long, should the matrix be in the form 2x2?
// If a word is 5 letters long? What happens then?

var rowLength;
var columnLength;
var index = 0;

String[][] letters = new String[row][col];
String word = "ABCD";


for (int i = 0; i < columnLength; i++) {
    for (int j = 0; j < rowLength; j++) {
        letters[i][j] = word.at(index++);
    }
}

这应该将您的单词保存在矩阵中,由您选择如何实现它。 X * Y。通过以相反顺序遍历矩阵,逐行。您现在应该能够以所描述的形式构建新单词。

// Here we can build the new word ('newWord') by appending each letter
// from the array of letters[][] declared above.
String newWord = "";
for (int x = 0; x < rowLength; x++) {
    for (int y = 0; y < columnLength; y++) {
        newWord.append(letters[x][y]);
    }
}
return newWord;