diff --git a/Program.cs b/Program.cs index 6d8af47..0652cbf 100644 --- a/Program.cs +++ b/Program.cs @@ -111,30 +111,29 @@ class Program { //converto la stringa inserita da codifica Unicode a codifica ASCII //******************************************************************************************************************************************************************************// + { + Encoding ascii = Encoding.ASCII; + Encoding unicode = Encoding.Unicode; + char[] chars = stringa.ToCharArray(); + byte[] bytes = new byte[chars.Length]; - Encoding ascii = Encoding.ASCII; - Encoding unicode = Encoding.Unicode; - char[] chars = stringa.ToCharArray(); - byte[] bytes = new byte[chars.Length]; + for (int i = 0; i < chars.Length; i++) { + bytes[i] = Convert.ToByte(chars[i]); + } - for (int i = 0; i < chars.Length; i++) { - bytes[i] = Convert.ToByte(chars[i]); - } + Encoding.Convert(unicode, ascii, bytes); - Encoding.Convert(unicode, ascii, bytes); - - for (int i = 0; i < chars.Length; i++) { - chars[i] = Convert.ToChar(bytes[i]); + for (int i = 0; i < chars.Length; i++) { + chars[i] = Convert.ToChar(bytes[i]); + } + stringa = string.Join("", chars); } //******************************************************************************************************************************************************************************// //i numeri nei seguenti cicli for sono caratteri non lettere in codifica ASCII. I cicli separano i vari blocchi di questi caratteri da quelli con le lettere //******************************************************************************************************************************************************************************// - for (int i = 0; i <= 47; i++) { - stringa = stringa.Replace(Convert.ToString(Convert.ToChar(i)), ""); - } - for (int i = 58; i <= 96; i++) { + for (int i = 0; i <= 96; i++) { stringa = stringa.Replace(Convert.ToString(Convert.ToChar(i)), ""); } for (int i = 123; i <= 127; i++) { @@ -150,7 +149,7 @@ class Program { } else { metà1 = stringa.Substring(0, stringa.Length / 2).ToCharArray(); //divido la stringa a metà, prendo la prima e la converto in array di char per riordinarne le lettere - metà2 = stringa.Substring((stringa.Length / 2) + 1, stringa.Length / 2).ToCharArray(); //divido la stringa a metà, prendo la seconda e la converto in array di char per riordinarne le lettere + metà2 = stringa.Substring((stringa.Length / 2) + 1, stringa.Length / 2).ToCharArray(); //divido la stringa a metà, prendo la seconda e la converto in array di char per riordinarne le lettere, salto una lettera perché quella centrale non mi interessa } string metàOrdinata1 = string.Join("", InsertionSort(metà1));//ordino la prima metà della stringa e la riconverto da array di char in stringa @@ -175,7 +174,7 @@ class Program { Console.Write("Inserire la frase da cercare: "); stringa = Console.ReadLine(); - if (daEsserCercato.Length < stringa.Length) { + if (stringa.Length > daEsserCercato.Length) { Console.WriteLine("Errore: non è possibile cercare una frase più lunga in una più corta."); } @@ -188,19 +187,12 @@ class Program { } static int CercaStringa(string p_stringa1, string p_stringa2) { - int i = 0, ritorno = 0; - - //creo un array per avere l'indice iniziale di ogni occorrenza del testo da trovare e lo riempio di -1 visto che sono indici non validi - int[] indiciOccorrenze = new int[p_stringa1.Length]; - for (int j = 0; j < indiciOccorrenze.Length; j++) { - indiciOccorrenze[j] = -1; - } + int ritorno = 0, temp; while (p_stringa1.Contains(p_stringa2)) {//finché c'è un'occorrenza ritorno++;//conta quante occorrenze ci sono state - indiciOccorrenze[i] = p_stringa1.IndexOf(p_stringa2);//salva l'indice iniziale dell'occorrenza - p_stringa1 = p_stringa1.Substring(indiciOccorrenze[i] + 1);//accorcia il testo per cercare oltre l'occorrenza appena trovata (1 serve per accorciare oltre la lettera) - i++; + temp = p_stringa1.IndexOf(p_stringa2);//salva l'indice iniziale dell'occorrenza + p_stringa1 = p_stringa1.Substring(temp + 1);//accorcia il testo per cercare oltre l'occorrenza appena trovata (1 serve per accorciare oltre la lettera) } return ritorno; } @@ -223,12 +215,12 @@ class Program { static string Sostituisci(string p_stringa1, char p_lettera1, char p_lettera2) { char[] lettere = p_stringa1.ToCharArray(); - for (int j = 0; j < lettere.Length; j++) { + for (int j = 0; j < p_stringa1.Length; j++) { if (lettere[j] == p_lettera1) { lettere[j] = p_lettera2; } } - + return string.Join("", lettere); } diff --git a/bin/Debug/net9.0/strings_2.dll b/bin/Debug/net9.0/strings_2.dll index 767f051..42f6d64 100644 Binary files a/bin/Debug/net9.0/strings_2.dll and b/bin/Debug/net9.0/strings_2.dll differ diff --git a/bin/Debug/net9.0/strings_2.pdb b/bin/Debug/net9.0/strings_2.pdb index 35b2412..305e94a 100644 Binary files a/bin/Debug/net9.0/strings_2.pdb and b/bin/Debug/net9.0/strings_2.pdb differ diff --git a/obj/Debug/net9.0/ref/strings_2.dll b/obj/Debug/net9.0/ref/strings_2.dll index cd0d72b..742a551 100644 Binary files a/obj/Debug/net9.0/ref/strings_2.dll and b/obj/Debug/net9.0/ref/strings_2.dll differ diff --git a/obj/Debug/net9.0/refint/strings_2.dll b/obj/Debug/net9.0/refint/strings_2.dll index cd0d72b..742a551 100644 Binary files a/obj/Debug/net9.0/refint/strings_2.dll and b/obj/Debug/net9.0/refint/strings_2.dll differ diff --git a/obj/Debug/net9.0/strings_2.AssemblyInfo.cs b/obj/Debug/net9.0/strings_2.AssemblyInfo.cs index cdf1489..b5431b7 100644 --- a/obj/Debug/net9.0/strings_2.AssemblyInfo.cs +++ b/obj/Debug/net9.0/strings_2.AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("strings_2")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+7a6ed48375e0f3e665e5c7af97c52dac8a74c24c")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+c3221a26e7024becb1a0bc5ca23f9d5951939a0e")] [assembly: System.Reflection.AssemblyProductAttribute("strings_2")] [assembly: System.Reflection.AssemblyTitleAttribute("strings_2")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/obj/Debug/net9.0/strings_2.AssemblyInfoInputs.cache b/obj/Debug/net9.0/strings_2.AssemblyInfoInputs.cache index f41cca3..0b139e9 100644 --- a/obj/Debug/net9.0/strings_2.AssemblyInfoInputs.cache +++ b/obj/Debug/net9.0/strings_2.AssemblyInfoInputs.cache @@ -1 +1 @@ -5e3e4d696866e2b6908bc95830c3ffc558c82def5605b2b1f9029c1933ca644a +286555a28e2b9519ad213c06727318c7aaa3c8f73011ee3c1eb75939a096b603 diff --git a/obj/Debug/net9.0/strings_2.dll b/obj/Debug/net9.0/strings_2.dll index 767f051..42f6d64 100644 Binary files a/obj/Debug/net9.0/strings_2.dll and b/obj/Debug/net9.0/strings_2.dll differ diff --git a/obj/Debug/net9.0/strings_2.pdb b/obj/Debug/net9.0/strings_2.pdb index 35b2412..305e94a 100644 Binary files a/obj/Debug/net9.0/strings_2.pdb and b/obj/Debug/net9.0/strings_2.pdb differ