namespace strings_3; class Program { static void Main(string[] args) { Menu(); } static void Menu() { Console.Clear(); int scelta; string stringa1, stringa2; do { Console.WriteLine("Inserire un'opzione:"); Console.WriteLine("1. Alterna i caratteri"); Console.WriteLine("2. Codifica di una frase"); Console.WriteLine("3. Primo carattere maiuscolo"); Console.WriteLine("4. Sostituisci sottostringa"); Console.WriteLine("5. Parola palindroma pari"); Console.WriteLine("5. Parola palindroma dispari"); Console.WriteLine("0. Esci"); Console.Write("Scelta: "); scelta = Convert.ToInt32(Console.ReadLine()); switch (scelta) { case 0: break; case 1: Console.Clear(); stringa1 = Input(); stringa2 = Input(); if (Controllo(stringa1, stringa2)) { Console.WriteLine(AlternaCaratteri(stringa1, stringa2)); } else { Console.WriteLine("Errore: le due stringhe devono essere lunghe uguali"); } Pausa(); break; case 2: Console.Clear(); Console.WriteLine(Codifica()); Pausa(); break; case 3: Console.Clear(); //ContaStringa(); Pausa(); break; case 4: Console.Clear(); //Input4(); Pausa(); break; case 5: Console.Clear(); //PariEDispari(); Pausa(); break; case 6: Console.Clear(); //PariEDispari(); Pausa(); break; default: Console.WriteLine("Opzione non valida."); Pausa(); break; } } while (scelta != 0); } static void Pausa() { Console.WriteLine("Premere un tasto per continuare. . ."); Console.ReadKey(); Console.Clear(); } static string Input() { Console.Write("Inserire una frase: "); return Console.ReadLine(); } static bool Controllo(string p_stringa1, string p_stringa2) { bool ritorno; if (p_stringa1.Length == p_stringa2.Length) { ritorno = true; } else { ritorno = false; } return ritorno; } static string AlternaCaratteri(string p_stringa1, string p_stringa2) { string ritorno = ""; for (int i = 0; i < p_stringa1.Length; i++) { ritorno = string.Concat(ritorno, p_stringa1[i], p_stringa2[i]); } return ritorno; } static string Codifica() { string stringa = Input(); char codice = 'f'; const char inutile = '\\'; char[] ritorno = new char[stringa.Length * 2]; Array.Fill(ritorno, inutile); char[] vocali = { 'a', 'e', 'i', 'o', 'u' }; int k = 0; for (int i = 0; i < stringa.Length; i++) { ritorno[k] = stringa[i]; for (int j = 0; j < vocali.Length; j++) { if (stringa[i] == vocali[j]) { k++; ritorno[k] = codice; break; } else if (stringa[i] == char.ToUpper(vocali[j])) { k++; ritorno[k] = char.ToUpper(codice); break; } } k++; } return string.Join("", ritorno).Split(inutile).First(); } }