Random mit Buchstaben (Problem)



  • So mein Problem ist dieses:

    Ich möchte ein Programm haben, bei dem man ein Wort eingibt (z.B. Jacke), das Programm soll dann alle Buchstaben, bis auf den ersten und letzten Zufällig vertauschen, also diese: Jacke dann ganze sollte dann halt zum Beispiel so aussehen: Jcake ...

    Mein Ansatz ist dieser:

    Random r = new Random();
                string str;
                Console.WriteLine("Bitte geben sie ein Wort ein:");
                str = Console.ReadLine();
                Char[] Array = str.ToCharArray();
    
                for(int i = 1; i < Array.Length -1; i++)
                {
                }
    
                Console.Write(str);
    
                Console.Write("\n\nTaste für Ende...");
                Console.ReadKey();
    

    Ich komm halt bei dem (zufälligen) Vertauschen von dem Buchstaben im Wort nicht weiter...

    Ich hoffe mir kann jemand helfen ... Thx schonmal im vorraus 😉



  • Hallo

    Der kürzeste Weg ist natürlich std::random_shuffle.
    Ansonsten eben per Hand : Du definierst einen neuen leeren string "Ziel". Dann ziehst du dir mit den üblichen random-Funktionen eine Zahl im Bereich 0 - Anzahl Zeichen im Ausgangsstring. Das Zeichen an diesem gewürfeltem Index verschiebst du von Ausgang- zu Ziel-String (aus Ausgang löschen, im Ziel einfach hinten ran hängen). Das wiederholst du solange bis in Ausgang kein Zeichen mehr vorhanden ist. Wichtig ist das der Bereich in dem du Zufallszahlen ziehst immer auf die aktuelle anzahl Zeichen im Ausgangsstring beschränkst.

    Und wenn du voraus richtig schreibst, wirds auch nicht zensiert.

    bis bald
    akari



  • Ja danke für die schnelle Antwort 😉
    und das mit dem voraus naja ... Tippfehler halt xD


Anmelden zum Antworten