Question: Convert this C++ code to Java code the code below is to encrypt and decrypt strings of characters using Matrix transposition cipher #include #include void
Convert this C++ code to Java code
the code below is to encrypt and decrypt strings of characters using Matrix transposition cipher
#include
#include
void cipher(int i, int c);
int findMin();
void makeArray(int, int);
char arr[22][22], darr[22][22], emessage[111], retmessage[111], key[55];
char temp[55], temp2[55];
int k = 0;
int main()
{ char *message;
int i, j, klen, emlen, flag = 0;
int r, c, index, rows;
printf("Enter the key "); fflush(stdin);
gets(key);
printf(" Enter message to be ciphered "); fflush(stdin);
gets(message);
strcpy(temp, key);
klen = strlen(key);
k = 0;
for (i = 0;; i++)
{ if (flag == 1)
break;
for (j = 0; key[j] != NULL; j++)
{ if (message[k] == NULL)
{ flag = 1;
arr[i][j] = '-';
}
else
{ arr[i][j] = message[k++];
}
}
}
r = i;
c = j;
for (i = 0; i < r; i++)
{ for (j = 0; j < c; j++)
{ printf("%c ", arr[i][j]); }
printf(" "); }
k = 0;
for (i = 0; i < klen; i++)
{ index = findMin();
cipher(index, r);
}
emessage[k] = '\0';
printf(" Encrypted message is "); for (i = 0; emessage[i] != NULL; i++)
printf("%c", emessage[i]); printf(" "); //deciphering
emlen = strlen(emessage);
//emlen is length of encrypted message
strcpy(temp, key);
rows = emlen / klen;
//rows is no of row of the array to made from ciphered message
j = 0;
for (i = 0, k = 1; emessage[i] != NULL; i++, k++)
{ //printf(" Emlen=%d",emlen); temp2[j++] = emessage[i];
if ((k % rows) == 0)
{ temp2[j] = '\0';
index = findMin();
makeArray(index, rows);
j = 0;
}
}
printf(" Array Retrieved is "); k = 0;
for (i = 0; i < r; i++)
{ for (j = 0; j < c; j++)
{ printf("%c ", darr[i][j]); //retrieving message
retmessage[k++] = darr[i][j];
}
printf(" "); }
retmessage[k] = '\0';
printf(" Message retrieved is "); for (i = 0; retmessage[i] != NULL; i++)
printf("%c", retmessage[i]); return (0);
}
void cipher(int i, int r)
{ int j;
for (j = 0; j < r; j++)
{ { emessage[k++] = arr[j][i];
}
}
// emessage[k]='\0';
}
void makeArray(int col, int row)
{ int i, j;
for (i = 0; i < row; i++)
{ darr[i][col] = temp2[i];
}
}
int findMin()
{ int i, j, min, index;
min = temp[0];
index = 0;
for (j = 0; temp[j] != NULL; j++)
{ if (temp[j] < min)
{ min = temp[j];
index = j;
}
}
temp[index] = 123;
return (index);
}
Please make sure that the Java code run on iOS
Thank you
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
