Program.cs 4.12 KB
Newer Older
Uwe Wienkop's avatar
Uwe Wienkop committed
1 2 3 4 5 6 7 8 9 10 11 12 13
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _05Character
{
    class Program
    {
        static void Main(string[] args)
        {
            string s = "Hallo Welt";
14
            char z = 'A';
Uwe Wienkop's avatar
Uwe Wienkop committed
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38

            foreach (char c in s)
            {
                int x = c;
                Console.WriteLine($"{c} | {x}");
            }
            Console.WriteLine("---------------");
            for (int i = 0; i < s.Length; i++)
            {
                int x = s[i];       // i-tes Zeichen der Zeichenkette s
                Console.WriteLine($"{s[i]} | {x}");
            }
            Console.WriteLine("---------------");
            for (int i = 32; i < 128; i++)
            {
                //char c = (char) i;
                Console.Write((char) i);
            }

            Console.WriteLine();
            Console.WriteLine("---------------");
            string s1 = "Hallo Welt";
            Console.WriteLine(ToUpper(s1));

39 40 41
            s1 = "RELIEFPFEILER";
            Console.WriteLine($"Ist {s1} ein Palindrom => {istPalindrom(s1)}");
            Console.WriteLine(Reverse("ABCD"));
Uwe Wienkop's avatar
Uwe Wienkop committed
42

43 44 45 46 47 48 49 50 51 52
            s = "Hallo Welt";
            s = s.Substring(0, 5) + "*****" + s.Substring(6);
            Console.WriteLine(s);

            string codiert = CaesarCodierung("CAESAR AN SEINE LEGION: ANGRIFF AUF DIE GALLIER", 6);
            Console.WriteLine(codiert);
            for (int i = -1; i>-26 ; i--)
            {
                Console.WriteLine(CaesarCodierung(codiert,i));
            }
Uwe Wienkop's avatar
Uwe Wienkop committed
53 54 55
        }

        static int CompareTo(string s1, string s2)
56
        {
Uwe Wienkop's avatar
Uwe Wienkop committed
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
            //  0 --> s1 == s2
            // >0 --> s1 > s2
            // <0 --> s1 < s2
            int minZeichen;                 // Länge der kürzeren Zeichenkette bestimmen
            if (s1.Length < s2.Length)
                minZeichen = s1.Length;
            else
                minZeichen = s2.Length;

            for (int i = 0; i < minZeichen; i++)  // Vergleich solange beide Zeichenketten
            {                                     // noch Zeichen enthalten
                int diff = s1[i] - s2[i];
                if (diff != 0)
                    return diff;
            }

            if (s1.Length == s2.Length)           // Beide Zeichenketten gleich lang?
                return 0;                         // 0 --> s1 == s2
            else if (s1.Length > s2.Length)       // Ist die erste Zeichenkette länger?
                return 1;                         // pos.Erg --> s1 > s2
            else
                return -1;                        // neg.Erg --> s1 < s2
        }

81
        static string ToUpper(string zeichenkette)
Uwe Wienkop's avatar
Uwe Wienkop committed
82 83
        {
            string sErg = "";
84
            foreach (char zeichen in zeichenkette)
Uwe Wienkop's avatar
Uwe Wienkop committed
85
            {
86 87 88 89
                if (zeichen >= 'a' && zeichen <= 'z')       // Für Kleinbuchstaben:
                    sErg += (char) (zeichen - ('a'-'A'));   // (char) unbedingt notwendig, sonst
                else                                        // werden die Zahlenwerte gespeichert
                    sErg = sErg + zeichen;          // Alle anderen Zeichen einfach übernehmen
Uwe Wienkop's avatar
Uwe Wienkop committed
90 91 92
            }
            return sErg;
        }
93 94 95 96 97 98

        static string Reverse(string zeichenkette)
        {
            string sErg = "";
            foreach (char zeichen in zeichenkette)
            {
99
                sErg = zeichen + sErg;
100 101 102
            }
            return sErg;
        }
103 104 105 106 107 108 109 110 111 112 113 114 115
        static string CaesarCodierung(string zeichenkette, int n)
        {
            string sErg = "";
            foreach (char zeichen in zeichenkette)
            {
                if (zeichen >= 'A' && zeichen <= 'Z')
                    sErg += (char)(((zeichen - 'A') + n + 26) % 26 + 'A');
                else
                    sErg += zeichen;
            }
            return sErg;
        }

116 117 118 119 120 121 122 123 124 125 126 127 128

        static bool istPalindrom(string s)
        {
            int i=0, j=s.Length-1;
            while (i<j)
            {
                if (s[i] != s[j])
                    return false;
                i++;
                j--;
            }
            return true;
        }
Uwe Wienkop's avatar
Uwe Wienkop committed
129 130
    }
}