ブロック転置暗号プログラムを作成する課題があります。ユーザーが選択したフレーズを入力すると、プログラムはそのフレーズからスペース、句読点を取り除き、小文字を作成してから、その長さを読み取り、すべての文字列に適合する最も近い正方形のサイズの 2 次元配列を作成します。変更された文字列の chars を変更し、残りのスペースをランダムな文字で埋めます。
問題は、その正方形の作成に問題があることです。
私はこれまでのところこれを持っています:
int main()
{
string input;
cout << "Please enter message to cipher." << endl;
getline(cin, input);
/* do punctuation removal/mutation */
int strLength = input.length(); //after mutation
/* need to find the square here before applying sizes and values to arrays */
char * original = new char[][]; // sizes pending
char * transposed = new char[][]; // sizes pending
for (int i = 0; i <= /* size pending */ ; i++)
{
for (int j = 0; j <= /* size pending */ ; j++)
{
transposed[j][i] = original[i][j];
}
}
/* do more stuff here */
}
何か案は?
(私はすでに突然変異部分を行っています;代替コードでテストされています)