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

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!