strings_3/Program.cs
2025-02-17 09:02:27 +01:00

139 lines
4.0 KiB
C#

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();
}
}