[Playlisten] [Impressum und Datenschutzerklärung]

S05B.2 Suche in Zeichenkette; UND mit short circuit


CC-BY-NC-SA 3.0

Tempo:

Anklickbares Transkript:

eineZeichenkettewas dummes CDIwar B C D E F A B C D ??so stellen Sie mal fest ob in dieser Zeichenkettegroß A groß Bin dieser Reihenfolgedrin istob einmal ?? zweimal ist mir egalist das drin oder nicht wie kann ich das feststellenokaydanndie Zeichenkette durchlaufenwas es am geschicktestenvorgestern was man ?? for-Schleifefor-Schleife die als Bedingung hat das A von I ungleich null ist das es vielleicht das elegantesteich mach'smal mit der Waldschleifedie etwas natürlicher ist denke ich an der Stellegehe so lange durch die Zeichenkettedurchwieeben nicht hier die abschließendenull hintendrangefunden istkönnte auch mit String längste eingebaute Funktion nach der Länge fragenwie auch immerich gehe die Zeichenkette durch so auf diese Weisedurchgehen ?? ich nicht vergessen ?? C plus plus musste verstehendass wir das Durchlaufen der Zeichenkettesosammelnbei den meistenüber ein habe ich jetzt auch gesehen okay ich gucke nachist das IdezeichenGleicharminezum paarRaffinessen was die Schreibweiseangeht natürlich gleich gleich was sie nicht zuweisenso würden siedie Nummer des Zeichens annehmenund reinschreibenin das Gerät es ist nicht im Sinne des Erfinders ich möchte vergleichenund die einfache Anführungszeichenso schreibenvergleichen sie mit dem Inhalt einer Variable namens groß A es gibt aber keine Variable namens groß Aich hätte gerne die Nummer des Zeichens groß A das in dieser einfachen Anführungszeichendieauseinanderhalteneinfach Anführungszeichendie Nummer eines Zeichens doppelte Anführungszeicheneine CZeichenketteein Stringmit einer null am Ende auch vollautomatischdie nicht hingeschrieben wirdals ich gucke ob ich das groß A gefunden habeer das kann ich aber nicht getrennt davon gucken ob ich das große B gefunden habe das fertig Junta gesehenwerdendas davon trennenin dem getrennten ?? ist komischweildann können Sie auch sowas haben das B steht irgendwo das A steht irgendwo müssen beten ist nah drinschön was habe ich jetzt gelernthabenmuss ?? gucken ob die beiden hintereinander stehendas heißt es müsste alles in dasselbe Eve reinwenn ich mal ganz dreist ??das wirklich in eine Bedingung reinzur Übungund undes möchte ich feststellen ob der nächstedassdie jetzt?? ich hab das A gefundenund ich möchte feststellen ob der nächste das BSR jetzt nicht ganz richtig was mach ich noch an dasein Vorschlag war das sie es gut dass sie den Vorschlag bringen weiles anscheinend sehr verlockenddass es sehr verlockendan was wird passierensolange er dendas groß A nicht gefunden hat ist das hier vorne falschDoppel undwas vorne falsches wird es hinten niemals ausgeführtokaysolange das groß Anicht gefunden habe geht es durch eine zum nächsten sub ?? wenn ich das groß A gefunden habe oder ein groß A gefunden habeist der Teil vorne wardas heißt er muss beim Doppel und auch den zweiten Teil ausführenwas bedeutet das er nimmt die Variable Ierhöht sich um eins der Wert von I wird geändertdas heißt C plus plusnehme das was in der Variablen I stehtund zähle eins raufnimmt'sdie Variable I erhöht sich um einsärgerlicher weiß ist der Wert von I plus plus aber das Original was drin gestanden hat das was ist dieselbe Stelledie wir vorher hatten ihm so weit erhöht aber C++ ist derselbe Wert den wir vorher hattensie gucken an derselben Stelle noch mal nachversteht aber schon das groß A drin und nicht das groß Bähmlange Rede kurzer Sinn sie wollten eigentlich nicht C++sie wollten was anderesjawas sie wollten inzwischen ergreifend I plus einsähdas muss ihn aber klarmachenscheintund ichstehenalso C++heißtdas können Sie aus so nackt hinschreiben und diese sinnvoll C++heißt den Wert von I um eins zu erhöhen ?? diese Variable zu ändernSchublade aufeins raufzählenSchublade wieder zu der Inhalt von ihr ist anders danach wenn sie plus plus machenwenn sie sagen E-Plus einsändert sich nicht der Wert von Idieses Jahres gibt mirdas was in ihm liegt an ihrer eins drauf und vergesst es dann ?? irgendwie merken müssensowashier nehme ich den Inhalt von ihr Tiere eins drauf und schreibt das in B rein der Inhalt von ihm bleibt derselbedie das machenC plus plusBit geändertdas was sie nie steht das es fiesdas will ich hier absolut nichtkönntest machen mit Raffinesse aber das will ich eher nicht ihramden hätte ich gerne gucke an der nächsten Stelle nach Wiki gleich fünf istGoogle hier an der Stelle sechs nach ich möchte nichtdass der mir sofort auf die sechste Stelle des I umstellt zumal C plus plus auch nicht das zurückgibt was sie erwarten würdenam?? also Vorsicht C++Essen wichtiger echter Befehle was sinnvolles macht er verändertdieum eins nach obenund E-Plus eins rechnet einfach nur was aus das Jahrdie Idee sollte das einmal ausschreiben was heißt E-Plus plus E-Plus Pluszeichen I ist gleichI plus einsdass es C++den nächsten ausrechnenund wieder zurücklegenan die Stelleder Wert von I wird geändertdas möchte ich an dieser Stelle nicht ich möchte nur E-Plus eins habendanndas wird lustigerweiseresigniert steht vor funktionierenweil ich nur nach zwei Zeichen guckeKomma gucken was mit reindreinfusioniertund nicht funktionierthabenKomma dass McCartney ihr wurdeAWEistdrinBeistrich vormalsob ich hier wiederStandard boolund setze hier okay wir haben es gefundenPunktdas wirdso weit funktionierender Kopf Luxusliner mit ABC an Wasser männlich gefährlich wirdaber was man hiererst mal sage ich hab's nicht gefunden jetzt gehe ich die Zeichenkettedurchder ersteist das schondas Ende der Zeichenketteder erste offensichtlich nicht?? ist der erste das A Neinund so weiterund so weiter man ?? guckenmuss ichauchzu Schnellobjekter sie zumindest jetzt in der richtigen Stelleist der umgesprungen es ist drinnenzeige ich mal geratenegrenzwertigeSituationwenn AB zweimaldrin istoder was man sowas war so AB ist am Ende trennendannhat er beimvorletztenhier das A und beim allerletzten das BE das Haut nach hintenwas passiert wenn ganz am Ende ein Ahr stehtdas Kind lustigerweisegerade noch was ist denn ganz am Ende ein Aal stehtwas wird hier dannalso genau hier was wird sie dann passierenganz am Ende ein Arer Asimov ?? das war nicht im Kopf ups halt etwas schief Lustigerweisegibt das gerade nochbeimdem hiersieht er das Haar und guckt dann den nächsten nachnetterweisegibt's er noch einen nächsten die nulldas heißt hier wird diese abschließende null verglichenund es funktioniert dann so wie es funktionierenmussdieser Vergleich wird falsch bei A von I plus eins die abschließende null ist wenn ich die mit B vergleiche wird es falsch werden und das wird gerade noch funktionieren ich lese gerade nicht über das Ende der Zeichenketteweganweil es hier nur zwei Zeichen sinddeshalb nochmals ein bisschen komplizierterist ABC drin dann wird's gefährlichdass ich seit über das Ende der Zeichenkette weg lesestellen sie das Fest ABCund ich möchte nicht über das Ende der Zeichenkette Weg lesendass es verbotenund trotzdem soll es so ?? Situation behandeln könnennatürlich ABC drin ?? PCs drinwie schreiben Sie die richtige Bedingung hinter sich nicht über das Ende der Zeichenkette weg lesenPunktich sollte noch mal sagen was der Ärger ist der Ärger ist nicht das hier die Abfrageeinen quasi zufälligen Wert liefern wird wenn ich hinter dem FA Nachdruckebei der irgendwas im Speicher stehen kann der Ärger istan dieser Stelle das wir das Betriebssystemauf dieser Maschine gibt's kein sicheres Betriebssystem auf dem Chip?? Motor das Betriebsystem rein funken kann und sagen dann ja darf nicht gelesen werden FeierabendEnde des ProgrammsZugriffsfehlerdas ist der Ärger das BetriebssystemKomma was auf die Finger geben das ich eine Stelle Lesenächtean der ich nicht lesen darfdannaber das istlustigerweisewas ich gerade sehewenn sie das hinschreibenwas man glaubt was man hinschreibenmüsstewird es funktionieren?? ich werde niemalsüber das Ende des RS hinaus lesen wenn ich das hier mache absurderweisewarum werde ich in dieser Situationselbst in dieser Situation nicht über das Ende des Geräts hinaus lesenobwohl ich jedoch scheinbarweit nach draußen guckeerfüllt wie du Nachdenken in der Tat sie haben Rechtandamacht dieses wardas wird jetzt falsch sein weil am Ende des RShier einen null steht am Ende der Zeichenkettedes RS mit den Zeichen am Ende diese Rechte steht eine null das heißt dieses wird falsch werdenwahr und falsch ist falschund das heißtsie kuckt hinten nicht mehr rein das ist der Sinn von dem Doppel undwenn der erste schon falsch ist muss ?? den zweiten nicht angucken das heißt der hinten wird niemals ausgeführt??SI plus zwei wird niemals angegucktdas ist natürlich total haarsträubendermuss man es heraufkommen Beistrich kann gar keinen Ärger hier stellenichdenke sowas muss man hier als Kommentar dann dazuschreibendasman auf den ersten Blick merkt man nicht was da passiert es wird nieüber das Ende der Zeichenkette hinaus gelesenKommaso dankShortzirkelsdas heißt dass er mit dieserKurzschlussauswertungwenn ihr vorne einer falsch istguckt sich C die hinteren gar nicht mehr andas es nettwenn der erste war ist das A hier groß A ganz am Ende stehtder nächste fehlschlagenund der letzte wird gar nicht angegucktKomma das einmalVorführnicht für das mal vor dass das wirklich der Fall ist dannschreibt man hier eine Funktion dazwischennamens Dannyund das vorzuführen dass das wirklich hinhautduTermin und sie macht Nixundnimmt Nixund liefert einfach nur wahr zurückund ändert sich mein Weg Punktsiebzehn hundert ?? vorzuführenandiese Funktion dann sagt immer nur warauf ganz blöde Art das heißt wenn sie sagen uns damitpassiert nichts Schlimmes und warist dasselbe was es vorher war falsch und war es falschwar und war es waraber ich kann an dieser Stelle einfach mit kriegen ob diese Funktion aufgerufenwird darum geht's mir wird jetzt NCdiese Bedingung hierin vier Einzelteilenin C diese Bedingung sich angucktwird damit aufrufenoder nichtsverstandenwird mir aufrufen und machen es bei den NormalfallABC steht vorne drinjetzt sollte den Aufrufensollte diese Funktion reinkommendas anwillmich das einfach laufensagt er kommt in die Funktion rein sie nicht die in der Funktion drinnenwie erwartetjetzt nämliche ABC der vorne weg das A am Endeund wenn alles glatt gehtwie der din nicht ausführenmit der macht den Vergleichmacht diesen Vergleich?? sollte da nicht ankommendas ist jetzt mal auf Kunden wie weiter oben schon ?? das Laufen die Frage ist landete Entamioder Lande nicht in der mehr sollte nichtzu sehen das Programmist beendetwir sind nicht darin gelandet ?? hat es wirklich nicht ausgeführtPunkt das ist ?? ganz eigenwillige Effektvon dieser short Circuit Auswertungwenn sie kompliziertereGeschichten veranstaltenbei diesen verhörenbei diesen Burschenverknüpfungengibt es manchmal überraschender und in diesem Sinne sogar hilfreicheEffekte?? es wird bei dem unsder erste Teil geprüft wenn der falsch istPunkt sich ziehen nichtden Rest anund das heißt in diesem Fall ergreift nicht auf diese Speicherstellezu und die Welt ist in Ordnungohne dass wir irgendwas besonders getan habendas ist der Effekt von diesem Doppel und und dem doppeltenStrichdem ?? und mit Schauzirkelsund dem ?? oder mit schwarzer KitalternativeKomma der nicht über solche Geschichten nachdenken muss ist das ich in for-SchleifeBilderahmenund diegleich nullund jetzt sowas machen wie je kleinerdie Länge der Zeichenketteminus zweidas wäre eine AlternativeKomma nicht um Ärgerund viel nachzudenkenwenn ich ABC suche muss das A ja spätestensandieser Stelle vorkommen Punktdeshalb kann ich dann ja einfachda Schluss machen zwei vor Ende der Zeichenketteokay das gefällt mir das wäre meine Alternativefor-Schleifewarensie Staatendie Staaten bereits beiVergleiche mit der String singendund dann gucken sie bei ihm minus zwei und bei ihm minus eins und bei ihm nachViren Alternativegeht auch aber ganz mit for-Schleife machenund mitder Funktion stringlängsoder mit der WahlschleifeLustigerweisefunktioniert es mit der while-Schleifesowie sollder Mann paar Minuten nachdenkt?? ich hatte sie gerade noch mal dazu was ich gemeint habe ich hier für dich hetzen die Farbenvon der Artbei dem vorvergleiche ich die den Inhalt von I plus eins I plus zweiund bei dem vorher müsste ich ja andersrum gehenwerdenwenn ich mit zwei anfangeist dasdie Nummer zweiso wär's die Nummer einsund hier müßig mit der Nummer null anfangenich starte mit ihm gleich zweidas heißt das ist nulleinsundnichtzweihier mit zwei starteist das null das ist einsund das ist zwei und dann geht ?? mithier mit dem IE weiter zu drei dann ist hier einszweidreiund so weiterin der Tat das ist nicht üblich dass man jetzt das rückwärts selber sieht irgendwie sehr lustig aus?? die minus zwei hier sieht für mich nicht so hübsch aus wie da einfach bei zwei zu startenwirkt irgendwie eleganter muss ich gestehendannbauen wir eine Geschichte nochdas es egal ist ob ABCin Großbuchstabenoder in Kleinbuchstaben?? vorkommtund ist ABC drinnen und jetzt als Ergänzung groß oder Kleinschreibungegalgroß oder klein und es soll auch möglich sein das man drin hatA B C zum Beispielwie kriege ich das inwelche Bedingung muss ich dann verwendenwenndieses vergleichendebisschen komplizierterwirdwenn ich nicht ?? mit drei Zeichenvergleichesein richtigallgemeinerZeichenketten vergleiche dann würde ich mir was überlegen wir mit der Zeichentabelledas angucken Kleinbuchstabenund Großbuchstabendie Großbuchstabenfangen beivier einshexadezimalan und die Kleinbuchstabenfangen bei sechs eins hexadezimalüber denselben Abstand elfist vier sechs großgeschriebenklein Fist sechs sechs klein geschriebengroß List vier C hexadezimalund klein List sechs sic hexadezimaldie haben konstanten Abstandmit Umlauten anfängt oder so wissen bisschen heftigerim Prinzip könnte man diesen konstanten Abstand ausnutzenum den Unterschied zwischen Groß und Kleinschreibungzu vergessendas würde ich machen eswie gesagt wenn sie bisschen komplizierter wird nicht nur drei BuchstabenanWenzel drei Buchstabensind mit dem oder aber man muss aufpassendasmir gerade klar gewordenich hatte das in derMathematik im ersten Semester immer vorgebetaber das jedoch zu schnell weg ich schreib jetzt mal hinwies nicht richtig istund wir überlegen unswarum das nicht richtig istdieplus einsund hiervonI plus zwei gleich klein Cso das wäre das nahe liegendekann kein Mensch mehr lesen ich breche das mal umoder planedas es verdächtig visumsbreche?? das mal soist der Notegroß Aoder klein Aund ist der erste groß Boder klein Bdes Computer damitund ist dermit der Nummer zwei groß Coder klein C das ist leider nicht richtigaus genau diesem Grund habe ich das in der Tat letztes nicht letztes im ersten Semester immer gepredigtund bindet stärker als oderwenn sie keine Klammern setzen ist das gemeint erstes unddann das oderder Schuss geht nach hinten losähmdas heißt ich muss das oder klammernwenn ich wirklich will das das oder erstausgeführtwird muss sich das Ruder Klammer zudas wird hässlichmit der sie sich mal auf mehrere Zeilenso müsste ich das Schreibenden im ?? Komma nach vornePunkt sie sehen das mit der Präzedenzwelche Rechenoperationenzuerst kommen und welche später kommendas hatseine Tückenhier muss ich dafür sorgen dass erst das oder ausgeführt wird und dann das und ausgeführt wird und nicht andersrumKomma war durch dezimalenWeg Punkt auf das ist ABC drinnenist er denn wenn das kleine ABC der vorneeuch aber irgendwas davorzwei dreiaufdergeht in der mir rein das gefällt mir schon?? und er findet auch wirklich ABC ist drinnenbei ihm gleich drei das richtigin gleich drei macht das kleine Adie gleich vier macht das kleine BE gleich noch das kleine C das weiß kein kompletter Test aber sieht erst mal nicht unplausibel ausdann eigentlich von ?? Funktion ausgebaut habendas sei Speicherkarte die Funktion aussehedanndie Funktion sollten Wut variabel zurück liefernodersollte nennen sie nennen ?? prüfeprüfe ABC oder sowas und sie werden der Funktion übergebeneine Zeichenketteso sehr das Ausin der Funktion will ich als jetzt von der Variablen X redenund das wäre ein Rehvon Zeichenund dann würden sie jetzt hierreinschreibenwas auch immer wir eben gerade geschrieben haben so wird dann Funktion werden können