monoalphabetic cipher code in c
//Monoalphabetic cipher
#include <stdio.h>
#include <string.h>
#include <malloc.h>
char *keycipher(char t[], int tl, char k[], int kl, int a)
{
char *ct = malloc(tl);
char newaz[26] = {0};
int orgaz[26] = {0};
int c = 0;
for (int i = 0; i < kl; i++)
{
int kc = k[i] - 97;
if (orgaz[kc] == 0)
{
orgaz[kc] = c;
newaz[c++] = kc + 97;
}
}
for (int i = 0; i < 26; i++)
{
if (orgaz[i] == 0)
{
orgaz[i] = c;
newaz[c++] = i + 97;
}
}
c = 0;
for (int i = 0; i < tl; i++)
{
if (a == 0)
{
ct[c++] = (t[i] == 32) ? 32 : newaz[t[i] - 97];
}
else
{
ct[c++] = (t[i] == 32) ? 32 : orgaz[t[i] - 97] + 97;
}
}
ct[tl] = '