Buonasera a tutti, non sono un programmatore, mastico un po, chiedo aiuto per mia figlia, a scuola gli hanno assegnato questo esercizio in linguaggio C,:
Codice C di partenza per risolvere il problema della cifratura. Nota: il codice NON funziona a va adattato secondo le specifiche di progetto: dovrà cifrare SOLO i caratteri dell'alfabeto ignorando qualsiasi altro carattere come numeri, spazi, punteggiatura e dovrà PRESERVARE le differenze tra MINUSCOLE e MAIUSCOLE
mia figlia ha prodotto questo:
#include <stdio.h>
#include <stdlib.h>
#define DIM 500
#define ALFABETO 26
#define alfabeto 26
int main()
{
int k = 3,
i = 0,
s = 0,
a = 0;
// creo una stringa di dimensione DIM
char stringa[DIM] = {'\0'};
printf("Inserire una stringa: ");
fgets(stringa, DIM, stdin);
// stringa sposata in avanti di 3 caratteri
for (i = 0; i < DIM && stringa != '\0'; i++){
if (stringa >= 'a' && stringa <='z')
s = (stringa - 97 + k) % alfabeto;
stringa = s + 97;
}
printf("%s\n", stringa);
printf("Inserire una stringa: ");
fgets(stringa, DIM, stdin);
// stringa maiuscole sposata in avanti di 3 caratteri
for (i = 0; i < DIM && stringa != '\0'; i++){
if (stringa >= 'A' && stringa <='Z')
a = (stringa - 65 + k) % ALFABETO;
stringa = a + 65;
}
printf("%s\n", stringa);
return 0;
}
ovviamente c'è uno o più bug perchè sostituisce anche i caratteri non alfabetici in lettere.
potreste correggerlo per favore, vi ringrazio anticipatamente per la cortese collaborazione.