#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>


char* CodificarCesar(char texto_nao_codificado[256], int chave)
{

    char alf[]= {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','\n','\0'};
    char mensagem_original[256];
    char* mensagem_codificada = malloc(256*sizeof(char));

    memset(mensagem_codificada,'\0',sizeof(mensagem_codificada));
    memset(mensagem_original,'\0',sizeof(mensagem_original));
    strcpy(mensagem_original,texto_nao_codificado);

    int i,j, tam = strlen(mensagem_original);

    for(i=0; i<tam; i++){
        for(j=0; j<strlen(alf); j++)
        {
            if(mensagem_original[i]==alf[j])
            {
                mensagem_codificada[i]=alf[(j+chave)%26];
                break;
            }
            else if(mensagem_original[i]==toupper(alf[j]))
            {
                mensagem_codificada[i]=toupper(alf[(j+chave)%26]);
                break;
            }
            else if(isspace(mensagem_original[i]))
            {
                mensagem_codificada[i]=' ';
                break;
            }//else space

        }//for j
    }


    mensagem_codificada[i] = '\0';

    strcat(mensagem_codificada,"\n");
    memset(mensagem_original,'\0',sizeof(mensagem_original));

    return mensagem_codificada;
}

int main(){
    char msg_orig[] = "Zorro";
    printf("%s", msg_orig);
    char *codificada = CodificarCesar(msg_orig, 1);
    printf("\n%s",codificada);

    return 0;
}
