Al final lo he hecho asi:
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
void menu(int &opcion)
{
printf("Que desea hacer:\n\n1.-Encriptar\n2.-Desencriptar\n3.-Salir\n\nElige opcion:");
scanf("%d",&opcion);
}
void pedir(char palabra[1000],int &num)
{
printf("Introduce la palabra, frase o texto que desees encriptar: ");
fflush(stdin);
cin.getline(palabra,1000);
printf("Introduce el numero de des/codificacion: ");
scanf("%d",&num);
}
void desencriptar(char palabra[1000],int num)
{
int i=0;
while(palabra[i]!='\0')
{
palabra[i]=palabra[i]-num;
i++;
}
printf("\nLa palabra, frase o texto desencriptado es:\n\n%s\n\n",palabra);
}
void encriptar(char palabra[1000],int num)
{
int i=0;
char letra;
while(palabra[i]!='\0')
{
palabra[i]=palabra[i]+num;
i++;
}
printf("\nLa palabra, frase o texto encriptado es:\n\n%s\n\n",palabra);
i=2;
while(i!=1)
{
printf("Deseas (D)esencriptarlo o (C)ontinuar? ");
fflush(stdin);
scanf("%c",&letra);
letra = tolower(letra);
if(letra=='d')
{
desencriptar(palabra, num);
i=1;
}
else if(letra=='c')
{
i=1;
}
else
{
printf("La letra introducida es incorrecta");
}
}
}
int main()
{
char palabra[1000];
int num,opcion;
bool i=false;
system("Title Cifrado Cesar");
printf("Este programa se basa en el cifrado <cesar>.\n\n");
while(i!=true)
{
menu(opcion);
system("cls");
if(opcion==1)
{
pedir(palabra, num);
encriptar(palabra, num);
}
else if(opcion==2)
{
pedir(palabra, num);
desencriptar(palabra, num);
}
else if(opcion==3)
{
printf("\t#########################\n\t#Programado By Cuentista#\n\t#########################\n\n Bye bye.\n\n Presiona una tecla para salir.");
fflush(stdin);
getchar();
i=true;
}
}
return 0;
}