/* Nome: Mario Cognome: Montanari Classe: 3AIN Data: 08/03/2025 */ #include #include #define SIZE 100+1 using namespace std; void encryptVingenereCipher(char *str, int offset, char *wormOffset); int main(void) { char str[SIZE]; //ABCDEFGHIJKLMNOPQRSTUVWXYZ char wormOffset[SIZE]; int offset; cout << "Inserisci una frase: "; cin.getline(str, SIZE); cout << "Inserisci la chiave: "; cin.getline(wormOffset, SIZE); encryptVingenereCipher(str, offset, wormOffset); return 0; } void encryptVingenereCipher(char *str, int offset, char *wormOffset) { int j = 0; for (int i = 0; str[i] != '\0'; i++) { if (isalpha(str[i])) { if (isupper(wormOffset[j % strlen(wormOffset)])) { offset = wormOffset[j % strlen(wormOffset)] - 'A'; } else { offset = wormOffset[j % strlen(wormOffset)] - 'a'; } if (isupper(str[i])) { str[i] = ((str[i] - 'A' + offset + 26) % 26) + 'A'; } else if (islower(str[i])) { str[i] = ((str[i] - 'a' + offset + 26) % 26) + 'a'; } j++; } } cout << "Frase codificata: " << str << endl; }