Cómo escribir un programa en C para cifrado de César en el lenguaje de programación C ?
Solution:
- /*Programa para a Cifra de César*/
- #include <stdio.h>
- #include <string.h>
- #define MAX 100
- void codifica(char texto[], int senha){
- int i, j;
- char aux[MAX];
- for (i = 0, j = 0; texto[i] != '\0'; ++i){
- aux[j] = texto[i] + senha;
- ++j;
- }
- for (i = 0; i < j; ++i){
- texto[i] = aux[i];
- }
- texto[i] = '\0';
- }
- void decodifica(char codigo[], int senha){
- int i, j;
- char aux[MAX];
- for (i = 0, j = 0; codigo[i] != '\0'; ++i){
- aux[j] = codigo[i] - senha;
- ++j;
- }
- for (i = 0; i < j; ++i){
- codigo[i] = aux[i];
- }
- codigo[i] = '\0';
- }
- int main(){
- char vetor[31];
- int senha;
- do {
- printf("\nDigite a mensagem a ser codificada: ");
- fflush(stdin);
- scanf(" %30[^\n]", vetor);
- if (strcmp(vetor, "fim") == 0){
- break;
- }
- printf("Digite uma senha: ");
- fflush(stdin);
- scanf("%d", &senha);
- printf("\nMensagem original: %s", vetor);
- codifica(vetor, senha);
- printf("\nMensagem codificada: %s", vetor);
- decodifica(vetor, senha);
- printf("\nMensagem decodificada: %s\n", vetor);
- } while (1); //porque?
- return 0;
- }