[Playlisten] [Impressum und Datenschutzerklärung]

07C.1 Zeichenkette füllen; Caesar-Verschlüsselung


CC-BY-NC-SA 3.0

Tempo:

Anklickbares Transkript:

Zeichenkettensind in C ja auch nur RaysRays von Beitz erst mal wenn man keine chinesischen und kyrillischen Zeichen haben willdann sinddas auch erst mal einfacheRallyes von Weizen Zeichenkettenin CinzwischenBeispiel sagen okaydannbau mir mal eineZeichenkettein dersechsten zwanzig Zeichen stehenScharist ja nicht anders als ein Byte in zehnsie schreiben an eineSchleife in der sie da die Zeichen von A bis Z von groß A bis groß Zreinschreibendie für dieses RE mit den Zeichen von groß A bis groß Zin einer Schleifewie sähe das ausokay eine for-Schleife muss offensichtlich werdenin die gleich Neurologieeiner sechsundzwanzigdie plus pluses kam die Frage auf welche Nummer hat denn das große Adass es jeder wird Komma zeigte Berlin noch malWelle dadie können es im Prinzipdie Nummer des großen A eintragenhexadezimalvier einsnundas ist unsichere Geschichte spätestens dann wenn man in die Umlaute geht und die kyrillischen Zeichen gehtwie das Rennen jeweils dann als Nummer dargestellt wird aber das System sagt Ihnen ja welche Nummer das hatsie können ja einfach sagenin einfachenAnführungszeichengroß Adas ist die Nummer des Zeichensgroß Asowenn Sie das Symbol groß A haben wollen nehmen Sie dieses bereits diese acht Bitsdas hier steht für ein Bitmuster aus acht Bitdas auf diesem System dann für das große A stehtzahlte das große A repräsentiert die Nummer des Symbols für das große Ain in den Buchstaben einfach miteinfachen Anführungszeichenund die anderen sind natürlich in einer Schritten dahinterdas sieht was etwas komisch ausauf den ersten Blickalso das A in einfachen Anführungszeichenist eine Zahl ein Beistrichdie Nummer des Symbols für das große Adas ist eine Zahlung zu dieser Zahl können sie was addierenkann sie wie deine Zahl rauswenn sie eins dazu addieren Handlungen des WWW zwei addieren und Nummer des See und so weiter und so weiter das ist der Gedankedas muss ich jetzt also in meinem RE unterbringenC vonihmist gleich das unten Semikolon dahinterspendiere ich die mir so Leerzeichenhübsch ausso sähe das ausdieNummer des Zeichens groß Aich addiere weiterdas heißt in diesem C steht jetzt aufeinanderfolgenddie Nummer von dem großen A von groß B von großes Cund so weiter durch die Rei durch?? guckenob er das auchmein jeder Rechner was ich da meinealsobis ?? ausführendass sie doch sehr verdächtig aus Abi CD und so weiter und so weiterLeerschritt sie sind wie das endet hierhier kann dases in ?? bei Zhabe dies hier weiter aufmachenSehen Sie O X Y Zfünf sieben LeerzeichenPunktsieht ein bisschen komisch auswaserwartetSie eigentlich jetzt noch warumglaubt er das der am Ende dieser Zeichenkettein den Müll stehtdie Null unterzeichnet zuwenden ja das heißt sie brauchensiebenundzwanzigZeichenfür die sechs Buchstaben brauchen Sie einen Rave von siebenundzwanzigZeichenund am Ende steht nullkönnte man jetzt zu Fuß aber sagen am EndeC von sechsundvierzigist er der letztegleich nullnull wäre eine Möglichkeitdass sie den letzten ausdrücklich auf null setzenoder sie initialisierenkönnten sie auchso schreiben steht etwa lauter Nullen drindass ich doch sehr komisch aus ich lass es malsoso wird der ganz am Ende das ist der mit der Nummer sechsundzwanzignull eins ?? dritten zwanzigsten sieben zwanzig Zeichender Mitte Nummer sechs zwanzig auf null gesetzt das heißt Ende der Zeichenkettedie oben haben sie gesehen wie das mit dem Rest typischerweise funktioniertdas Ray und getrennt davon sage ich Wieland das EWSund die Erfinder von Chatten eben den Gedankenhaareden Zeichenketten das es alles so schwierigKomma wirspeichern nicht die Anzahl getrenntsetzen da wohl Zeichenkette auf nur seindie Reis werden immer eins längerbeschreiben einfach ans Ende eine nullund gucken ob die null vorkommt das es gibt kein Zeichen mit der kein Symbol soll ich sagen kein Symbol mit der Nummer nulldienur ein zwei ?? und so weiter sind auch ein bisschen komisch vergeben?? es gibt keins mit der Nummer null sobald sie die null finden wissen sie es die Zeichenkette zu EndeVorteilaus alten Zeiten warenich kann Zeichenketteneinfach abspeichern die länger als zwo hundert fünf fünfzig Zeichen sindwenn ich die Anzahl getrennt speichern würdemüsste ich mich mal überlegen mach ich da jetzt ein weit raus mach ich zwei Byte draus mache ich vier Byte rausdiese Zeichen sollten insgesamt werdenso viel Platz müsste ich dann hier für die Länge ein kalkuliertimmer die null als Ende schreibt kann das Ding bei Gigabyte groß werdenund die null ans Ende die Frist ein weitund ich musste nicht Folge nur machen will hat siehaben Musses war seinerzeit ?? kluge Idee heute wissen wir das es aus Sicherheitsgründen einen extrem schlechte Idee waraber seinerzeit gab's noch kein Internet und keine bösen Leute im Internetder Rest wenn diese null vier dass man eine Wildnis läuft sozusagen sein Zeichenketten und das dann ziemlich Gewürz passierendas ist übliches EinfallstorfürSchach Softwarevirenund Würmerauf diese Weise ?? ?? Unsinn veranstaltetindem man andereProgrammteile zwingtüber das Ende von Zeichenketten weg zu lesen weil die null fehltsolange Rede kurzer Sinn am Ende steht jetzt eine null das heißt nun müsste ich auch hier im Debugger ordentlich sehen dass es mit MZ aufhört??dahinPunkt sie sehenes endet mit dem Zdas kann man einfacher habendas hier mit deneinfaches Anführungszeichen zudie Nummer eines Zeichenssie können eseine Zeichenkette auch haben die sofort eine null dahinter hatsie können denselben Effekt haben dem sie doppelte Anführungszeichen schreiben A B CD ich bin faul und so weiterX Y Zmit der doppelten Anführungszeichenhaben sie diesen Effekt sie kriegen ein Raymit diesen Nummern da drin Nummernzeichender drin und eine null am Endedaswas sie hier zu Fuß gebaut haben also das würde schon auseinanderhaltendie einfachen Anführungszeichenein einziges Zeichen die Nummer dieses Zeichensin der Symboltabelleund die doppelten Anführungszeichenheißen Punkt baue mir eine Welt mit einer Null am Ende das heißt diese ?? ist immer einen Eintrag länger als die Anzahl der Zeichen sie habenwasdie C Zeichenkettesiehst ringsnull terminierteZeichenkettewieder so schön heißtausführlich mit der Null am Ende speichere nicht die Länge?? einen null eins Endewas man heutezu vermeiden versuchtaber es ist ebenan vielen Stellen immer noch in den Bibliotheken dringesehen dass sie dir genauso ausund wenn dies aufklappen sehen sie aber CD X Y Z A B C D Punkt Punkt Punktdie Nummer des Punktes hexadezimalzweider Symboltabelleund sie sind am Endedie Zahl nullautomatisch ergänzt A bis Zund automatisch ergänzt die null das weiter mit den doppelten Anführungszeichenals die schon auseinanderhaltendie einfache Anführungszeichenund die doppelten Anführungszeichendas zieht sich auch in die modernen Sprachen durch die einfachen Anführungszeichensind ein Ding Kleinbuchstabenoder ein Symbol KaufmannsundParagraphenzeichenund die doppelten?? sind für Zeichenkettenmit Skriptsprachen wir das nicht so hart durchgezogen aber den üblichen Sprachen C plus plus da war sie schafft den großen Sprachen sozusagen wir das genauso durchgezogen mit den einfacherendoppelten Anführungszeichen?? zehn Minutenkann ein sinnvolles Geschichte noch bauenund zwar ich hätte gerne eine FunktionCaesar Verschlüsselungdie dümmste und schlechteste Verschlüsselung überhaupt aber so Komma gerade mitmit Zeichenkettenbasteln?? ich möchtedenCaesar Algorithmus eine Zeichenkette gebenimmer mal die C Zeichenkette hieran und er soll in die Zeichenkettezurückschreibenwas die Caesar Verschlüsselung machte der Verschluss heißt sie gehenim Alphabet zyklisch durchFelder Verschlüsselung ist folgendes sie stellen sich das Alphabet vor wie eine Uhr A B C DX Y Z das Alphabet als Uhrund sie gehen so zu viel Schritte weitervermisst jetzt dreizehn Schritte weiterKomma dreizehn Schritte weiter als das A wird zumBuchstaben dreizehn Schritte weiter das B wird zum Buchstabendreizehn Schritte weiter und so weiterwenn sie beim X sinddreizehn Schritte weiter landen sie wieder davon im Alphabetimmer dreizehn Schritte weiter jeder Buchstabe dreizehn Schritte weiterwie müsste ich das programmierendas als kleine Funktionund Funktion ?? das wieder rückgängig machtsaheine riesige anders nennenPunkt wenn ich das maldiese beiden Funktion eine Funktiondie dreizehn Schritte weiter geht im Alphabet aber so wie auf der Uhrwieder vorne anfängtund diese die das rückwärts machtSimoninDeklaration zur Funktion jaalso ich braucheschon richtig in die Schritte dahin?? ich brauche keine Rückgabe ich Leerzeichen die Zeichenkette selbst verändereKommaund ich brauch keine länger als eine klassische Cezeichenketteist die hat die null drinstehenwas gefährlich istKomma wenn was erst mal so machen klassischaber nicht die Länge brauchen nur die Zeichenkettemuss offensichtlichin einer for-Schleifedadurchäh gleichNullüberlegen was sie Bedingung istich gehe in einer Schritten dadurch so weit so gutjetzt weiß ich nicht wie viele Sachen in der Zeichenkette drinstehenich kann jetzt nicht schreiben I kleinerachtundneunzigweil ich nicht weiß ob achtundneunzig sind oderdrei hundert siebzig oder wie auch immer das können sie nicht schreiben was es jetzt die Bedingungmal klarmachen was die Zeichenketten sindwas ist die Bedingung in dieser for-Schleifealso Vorschlag ich muss gucken dass da keine null stehtnie Ausrufezeichengleich null I ungleich null ist nicht ganz was ich haben willgenau zehn eckigen Klammern von dem die möchte ich ungleich null haben Sie das jetzt total Schrägabbruchbedingungenwird eben schon gesagt dass die Stellen an denendie bösen Leute im Internet einen dann erwischenüber diesen unschönen Abbruchbedingungenaber wenn sie auf ihrem eigenen Siebter sitzen uns niemand fremdes kann draufaber sind immer noch so bis zu AnbeginnNC mal gedacht warStade mit null ?? in einer Schritten und ich arbeite so lange wie ich keine null in der Zeichenkette habeder aktuell in der Zeichenkette ist ungleich null so lange arbeite ichdas ist die Fortsetzungsbedingungwas jetzt jeweils passiert ist nicht die große Aktionichaddiere dreizehn draufplus gleichdreizehnund wenn ich über das Ende des Alphabetsweggegangen binFC von IhnenCvon EliVergleichüberlegen ist das sinnvollich sehe gerade ich habe der in ?? geschrieben böse böse das muss natürlich char heißenich komme drauf weil ich hier überlege was mit den Vorzeichenist bei C weiß man nie ob die Bytes Vorzeichen haben oder nicht ?? ich sage mal ausdrücklich an Saintcharsind die gerneBytesohne Vorzeichen nur bis zwei hundert fünfundfünfzigBytes ohne Vorzeichen so wenn das was jetzt hier rausgekommenist größerist als der Code vom ZKomma sodas größer ist als der Kot von Zdann sage iches sollnach vorne zurück gespiegelt werden vorne wieder reinkommen soll sein der Kot von HaarProzessorbusgleichbleiben der Kot vom Arm minus der Kot von Züberlegennicht über das Zelt hinauswennich das jetzt subtrahierenfang ich bei null an sozusagenund dann kommt das A dazudas müssteabsurderweisefunktionierenmal sehendass das immer geradedas müssten jetzt das Alphabet sehen um dreizehn Positionenim Kreis gerutschtPunkt nochverrückter Wertebereich berücksichtigtzudemnochinjedesHaus bis zum Cursorsagte N O P Q SN ist anscheinend der dreizehnte Buchstabesindauch wieder mit Nschlecht N O P Q R SJK L M N da ist irgendwas schief gegangen ist ?? nicht wieder derselbe Buchstabe A oft sind das A fehlt da habe ich also noch einenschiefgebautund überlegenwelchen rechtlich falschwenn ich größer bin als setzokaywenn ich ein weiterer bin Arzt setzt dann soll ein A rauskommenKomma hinten anbei dem Gesetzein zweitereins weiter als das Zsoll Na werden das einiges falsch gemachteneins weiter als Setzer klar werden das heißt ich muss Zsubtrahieren und ein subtrahierenwenn ihr eins mehr als Z steht zwar A rauskommensetze Prämien einzudringen A drauf jetzt müssen stimmensound ausführen bis dahinNO PQ und so weiter und so weiter Z jetzige mit A an wie sich das gehörtund endet mit ähmPunktdas wäreCäsarsie können sich vollständig rückwärts geht schon jetzt nicht die ganze Verständnis rückwärts gehtdannabsurderweisefällt mir gerade aufwenn ich dreizehn genommen habe damit kein Tor nachgedacht?? sechsten zwanzig Buchstabe Dwie wie geht es rückwärts jetzt rein zufällig aber nicht ?? wie geht es rückwärtsgenau rein zufällig immer dasselbe noch mal mit der dreizehn sie verschieben das Alphabet zweimal um dreizehn Buchstaben zum sechsten zwanzig verschobendas heißt in diesem Fall absurderweiserein zufällignicht zu Ende gedacht müsste das wieder das Original herstellendie Funktion selbstklappte wegen der dreizehn verwendeten zwanzig Buchstaben im Alphabet haben mal sehen ob jetzt müssten allenicht bis dahin ausführe alle Vorwürfe seinund West noch mal ausführensind alle wieder dawo sie waren also rein zufällig brauche gar keine Rückwärtsfusion zu schreiben und erstellen