[Playlisten] [Impressum und Datenschutzerklärung]

12C.5 Soundex-Algorithmus mit Speicherreservierung und Header-Datei


CC-BY-NC-SA 3.0

Tempo:

Anklickbares Transkript:

weiterzu dem Soundex das war jetzt janoch nicht so ganz so hübsch von der Programmiertechnik?? das Programm im Prinzip läuftvergangener Funktion immer Kleinbuchstabenzu Großbuchstabenacht Umlaut ignoriere ichderzeitdas alles amerikanische zu sagen diese Tabelle hierdie Benutzung des Songtext kurz zu bauenund dann weil jetzt der ?? die gesamte Routineum eine Zeichenketteumzubauenin ein Sound Exportin das Hauptprogramm eingebaut das ist natürlich überhaupt nichtprofessionellPunktnatürlich war mit ihnengucken über das vernünftig hinkriegendieses hier sollten Funktion werden die ich ordentlich aufrufen kann nicht ins Hauptprogramm eingebaut direkt sonderneine Funktion dich an allen möglichen Stellen aufrufen kannund dann sollte diese Funktion noch in einer extra Datei landenso von wegen Soundex Punkt HaarsoundexPunkt zehntausend Wege das zu machen versuchen Sie mal irgend einzufinden freut ist das erste was man machen solltewas hier drinnen steht erstmals innerhalb der Mediendateizu einer Funktion zu machen dann ist man schon einen gewaltigen Schritt weiterund dann lag Komma dass eine eigene Datei ausals erster Schritt versuchen Sie malwas hier stets zu einer Funktion zu macheneine Funktiondieeine Zeichenkette nimmtund diesen Soundexcodeliefert da muss ich weiter noch überlegen was ist die beste Form in der dieser Soundex gut geliefert wird das erstmals Funktion baueninnerhalb der Mediendateifunktionnicht einfachhier vorschreiben kannden Code nicht parat haben auch kein Dramaich brauche eine Funktiondie eine Zeichenkettenimmtund einen Code dieser Art liefertdas dort steht ?? in der Funktion drin aber das ist relativ geradlinigdas Problem sind zu Kriegen eine Zeichenkette zu nehmen und vereinigen dann diesen Code zurück zu liefern das Problem ist nichtdiese for-Schleife da und so weiterKomma da könnten rein setzen es hat mir schondas Problem ist wie diese Fonds und von außen aussiehtbis mit der Umgebung kommuniziertnicht so sehr was sie dann im Detail tut versuchen sie das Märchen zu schreiben sieht die Funktion ausdie Soundtracks kurz generiertmuss ja immer so aussehen werden wir das hier muss ja immer so aussehenwelcher Typ kommt zurückwie heißt die Funktionwas geht ReintypundName um dann einen Namen zu habenden im folgenden verwenden kann ?? genau dieses Schema muss dann ja auch passierenalso welcher Typ kommt zurück bisschen raffinierterder Name sollte dann wohl offensichtlich Soundex seinund was rein geht es der Zeichenkettealso nicht nur charsowasdass wir nur ein einzigerBuchstabe dass wir mit zu wenig also die sowas hätten sind es ganze Zahl istCAS ein Beistrich das wäre mir zu wenigSee nimmt immerhin dieses hieralternativkönnen Sie sagen ein Zeigeran der Stelle dasselbe bedeuten führt ein Zeiger auf ein Zeichenich lass mal lieber soamwas sie ihm dann übergebenistder Zeiger auf die man auf den Anfang von diesem Essayszu übergeben ?? nicht das gesamte FAsondernden Zeiger auf den Anfang von dem Rays werden ja?? ja weitgehendgleichbedeutendmit Zeigern Auftritts erst auf den ersten Eintrag behandeltwirklich ihre Funktion den Zeiger auf den ersten Eintragwas es insoweites war kein Problemdas Problem ist zurückzugebensie wollen ja nicht Kleinbuchstabenzurückgeben das wird auch nicht funktionierenKleinbuchstaben zurückzugebensie können auch nicht direkt zurückgeben in anderen Sprachen können generell zurückgebenund sie können sich wirklich eine Reihe zurückgeben sie können ein Zeiger zurückgebendass sie dann bisschen komisch auswäre aber eine der Möglichkeitendie manverwenden kannich kriege eine RayRatgeber ein Zeiger zurückauf dieses RE was ich da irgendwo erzeugegibt dann aber den nächsten Ärgervarianteprobierenanwenn sie jetzt so anfangen würdenokay das ist also der offensichtlich meine erste Zeile hierund dann rechne ich ganz vielStimme diesen Soundexportund zum Schluss sage ich gebe das Gerät zurückin dieser Form??gucken ob derCompilerdas schon merkt dass das nicht eine gute Idee istermerkt es ein Wonne gut der Compiler merkt eskönnte also auf den Gedanken kommt es so zu machenklingelt's eine auf das erst den ersten Eintrag von unserer Zeichenketteokay okaydas es reinjetzt bauen wir ein neues Gerätwie das vorher gemacht haben die Zeit einfach kopiert wird neunundneunzig Regensburg gemacht habeneine neue Zeichenkette ist das ?? und gebengeben die Zeichenkette Zurückanzeigeauf das erste Zeichendass es möglich Sonderform sind sie es gibt keinen Fehlerdas könnte man so machen nur sagt er jetztmit seinem Freund Otto Locke der Wirbelnetterweise weist er uns daraufhinan sienoch irgendeine Idee warum dasein Problem ist was ich hier machemanwenn dieser angeliefert was in das großes B zurückja aber das ist ja kein Problem ?? liefert ein Zeiger Zurückanzeigeauf dieses hier aber ich weiß an der Stelle zur steten Zeichenketteund die Lee sich einfach bis die null kommtich lese diese Zeichenkette bis die null kommt insofern ist das kein Dramadas Problem ist noch in andereswegen lokaler Variablediese Variable ihr Kotstehtin den Schweifklammer diese Variable wird abgeräumtnachdem sie Schweifklammer Don verlassen worden ist ich weiß nicht ob diese Variable noch der steht wo sie mal gestandener Doppel überhaupt irgendwas sinnvolles ?? besteht ?? eine Stelle steht ?? ganz was anderesdas ist das Problem ich gehe ein Zeiger zurück auf eine Speicherstellevon der ich nicht mehr weiß was da gleich stehtdiese Variable wirdbei der Schweifklammer abgeräumtwas ich zurückgebe Anzeige auf diese VariableKomma wenn die abgeräumt ist kann er sonst was nahe stehendas ist der Ärger es ist erlaubt in C Sims ist kein Fehlerimmerhin sagt uns der Compiler vor sich dass es für ?? scheint nicht was du machen willst ist es typischerweiseist das ein Fehlerauch wenn es sie nicht als Fehler markiertanalso hier gebe ichein Zeiger auf eine lokale Variable zurück das ist ungeschicktich willein bisschen in die Richtung stoßenvon von der SpeicherverwaltungKomma dass jetzt ordentlich machen würde müsste man hierSpeicher reservierenversuchen sich mal zu erinnern wasreservieren sie hinreichend viel Speicherfür dieses Gerät schreiben Sie was rein und da geben Sie dannden Zeiger auf diese Speicher zurück das ist dann okay wenn das mit mehr Realität machendie Speicherreservierungbitte nicht automatisch abgeräumtund ich kann den Zeiger verwendenwann sie das mal hin dass sie mit dem Renault geht genügend Speicher reservieren für das Ding da obenverbrauchenMemory Lockheed ähm lagdem Ding sagen sie wie viel Bytessie brauchensich auch noch mal sagen mir dieser Coachein Zeichenfür mich das erste Zeichen von dem Wort als Großbuchstabennoch ein Zeichensind die Nummer des Symbols für die null noch mal und noch mal ?? habe das vierte Zeichen ganz am Endedie Zahlen nullbis fünf Zeichen ?? und fünfBytesSchardas ganz normale char in C ist ja ein Bytesbeim ins weiß man nie so genau wie großes S und beim lang weiß man nie so genau wie groß es ist aber char ist ein Bytefünf Muster drinstehen ich möchte fünf Bytes reservieren sie können auch dahinter schreiben fünfmal Zeiss aufScharaber das geht dann auch nur fünfwenn ich was anderes habe ist Ax oder so dann sollte ich mal Zeiss auf der dahinter schreibenmuss ich im Zweifelsfall sogar dahinter schreiben hier baulich die fünf Bytes lassen sodie Speicher muss ich mir irgendwo merkendas System sich jetzt die Anforderungauch mal irgendwofünf BytesPlatzdas System sagt mir dann unter welcher Hausnummerplatzist ein Zeigerin dieser Form ??ähmich hab in alten Vorlesungen gerne dann hier noch Sohn Castor vorgeschriebenmuss man nichts ich fand es interessantweil in anderen Sprachen könnte sowas hilfreich sein klarzumachen das da umgewandelt wird ?? ich lass es mal weg also üblicherweise das Passwortinzwischen einfach wegdass keine Compiler von selbstals ihr kommt ein Zeiger zurückLockheed kommt ein Zeiger zurückan eine Stelle wo jetzt fünf Bytes Platz habenEnz kein Platz gibt kommt Nullzeiger zurückdas ignorieren der gerade maldas Schreiben ?? den Zeiger hin es können Sie ärgerlicherweisehier natürlich nicht doch eine neueVariable ein neues Rayanlegennamens Codebesser klappt es mit der Initialisierungnicht das hier kann ich machenzum initialisierenaber dazu ist es jetzt zu spät ich muss jetzt wirklich zu Fuß schreiben Code vonnullist klein groß S von nullCode voneinsist gleich nullso soll das ein Zeichen für die Null drin stehen und hier soll die Zahl Null drin stehen zumEnde der Zeichenketteund jetztwürde es gehen auch mit einer kleinen Geschichte nochimmer ?? Realitätwas muss ich noch tun um diese Funktion verwenden zu können ?? Lockheedjemand ändert sich noch Standardlipp fehlt mir hier nochim ?? Lockheed ist in Standardlippedeklariert in Cloudspitze Klammer zuSystem gehört?? Standard Library es CDPunkt habenso??ich serviere fünf Zeichenzeigerkommt daher ?? und der Zeiger hieristwesentlich Geschichte bei C wenn sie Anzeigerhaben können Sie diesen Zeiger wie den Namen eines Arraysverwendenanan diese Stelle der Polizeikennzeichenschreibe ich das erste Zeichen und so weiterund so weiterich gebe den Zeiger zurückund jetzt geht das auch eben das mit der lokalen Variante die wurde abgeräumthierreservierte Speicherplatzund der bleibt reserviert bis ich die nicht ausdrücklich freigebe bleibt der reservierte so kann ich hier den Zeiger zurückgeben und er wird immer noch funktionierende Zeigerzu den Zeigern gerade noch maldie könnte mandiese Zeile hier alternativSchreiben nur zu Wiederholungen würde sie dann nicht so schreiben aber nur noch mal zur Wiederholung von Zeigernkönnten Sie diese Zeile hier alternativ schreibenich möchte ab dem Zeigerden Code steht ab der Adresse die in der Variablen groß steht möchte ich zweiSchritte weiterund da das Symbol für die null reinschreibenwickeln sie dieses hier alternativ hinschreibenandere Möglichkeiten das zu schreiben sind dann nicht ganz so schön aber noch mal zur Übung könnte man das alternativ SchreibenVorschlagCoachplus zweigleichdie Nummer des Symbols nullwas halten Sie davonbei genauer Betrachtunggeht also nochmals an das fand ich schon mega normalbei Sachen an den Anfang von Medienich habe eine indische Variable von mir ausmuss natürlich auf zweiundvierzigstehen jetzt habe ich einenZeigerauf diese in der char variableKlammer zu Wiederholungwie kriegen Sie einen Zeigerauf dieses B also ein Zeiger auf die Speicherstellein der jetzt aktuelldie Speicherstellenin den aktuell zweiundvierzig Städte kriegen sie ein Zeiger auf dieses BKaufmannsundjaso in der Formwenn ich jetzt statt der zweiundvierzigdie dreiundvierzigDaten haben willrichtig in dieser Speicherstelledie dreiundvierzighabenwas schreiben Sie hinSternchengehenP zeigtauf dieSpeicherstelleab der die zweiundvierzigim Speicher stehtund hiermit sage ich das Ding auch das Gen zeigt Sternchen P macht aus dem Zeiger Pdas Ding auf das gezeigt wirdin diese Speicherstelle bitte die dreiundvierzig reinschreibenmit dem Kaufmannsundmachen Sie aus dernormalen Variableden Zeiger sie holen die Adresse das macht das Kaufmannsundco die Adresseeiner Variablen wo steht das Ding im Speicherunter Sternchen macht genau das umgekehrte es nimmt die Adresseund gibt ihm jetzt das echte Dingzum Arbeiten zum Beispiel daneben auf diese Weise das sie sagen können Sternchen B gleich dreiundvierzigalternativ das einzige ?? vor könnten sie auch sagenwas an dieser Stelle steht Sternchen Pum eins erhöhenkönnen Sie außerdenselben Effektedas ich von zwei vierzig auf einundvierzigPS der ZeigersternchenP ist das Ding auf das er zeigtund das möchte ich gerne erhöhenSternchen Kaufmannsundsind Gegenspieler sozusagenKaufmanns und hat natürlich noch die andere Bedeutung das logische und unterstelltenhat die andere Bedeutung der Multiplikationaber netterweisekann der Compiler das auseinanderhaltendass es überhaupt interessante Überlegung fällt mir gerade auf warum weiß der Compiler des sie hier kein logisches und meinen und warum weiß der Compiler hier dass sie kein mal meinengenau weil nichts davor steht bei dem Kaufmannsundmüsst ihr irgendwas davor stehen was jetzt gerundet wird aber durch den Gleichheitszeichendas kanns nicht seinbei dem Sternchen was die Adresse zum echten Ding machtdas kann kein mal Zeichen sein Wahl vor dem Sternchen nichts steht mit dem modifiziert werden könnte der Stäbchen Klammer auf und hier oben steht gar nichtswas aus Aspekt formaler Sprachen auf die Sprache C so gebaut in der Tat dass der Compiler das auseinanderhaltenkann wann ist das Kaufmannsunddieser Operator der die Adresse HodenmonstersKaufmannsunddas logische und das über dem Sternchendas ist also zweifelsfrei immer klarähm zu gebrauchen also das Sternchenum von der Adresse zum echten Ding zu Komma das fehlt mir sind das AdresseKot ist nur Adresseenthält eine Adresse soll ich sagen ?? variable Code enthält einen Adresse sie sagen ich gehe zwei weiterezweiHäuser von der SorteInstinkt wären auf dieser Maschinen in zwei mal sechzehn Bit weitersind Schar also zweimal acht Bit weiter zwei Bytes weiterimmer noch eine Adressedie können nicht sagen eine Adresse solldie Nummer des Zeichensnull sein sie können aber sagen was der stets an dieser Adressesoll die Nummer des Zeichens null sein das wären alternative Schreibweisen dies natürlich so ätzenddass es keiner schreiben wird es werden alle so schreibenaber zu wiederholen Komma so hätte es auch aussehen können Zeiger zwei weiterzweiHäuser von diesem Typ weiter so zu sagenund was steht an der Stelle das macht zur Nummer des Zeichens nullhätte man da auch schreiben können ??sehendas wann genialer Schachzug von den Leuten die C erfunden habendass dieZeigeran vielen Stellen so verwenden zu hören sind wie die Namen von Rays das macht das ganze deutlich freundlicher ihren tue ich Sourcecodekotein Rewewieviel erzählt Gutes wenn man den ganzen Rest von ?? und darum um rein kopierenKomma dich mal ausdem brauchen wirden ?? gerade schonin den mit eingebaut?? wir von dem ?? gleich einsbis da unten hindas kommt alles raus und hier oben reinrutscht nochund dann müsste das so funktionierendasschöne ist wie gesagtdieses Rennen jetztwas er eigentlichein Speicher auf reserviertenSpeicherplatz ist diese Variable Code kann ich genauso verwenden wie vorher das Recht kann weiterhinschreiben Kot von N ist gleich Creüssiert zu durchlaufenalso diese Funktion reservierte Speicherplatzfüllt das wie gehabt mit dem Soundexcodeund liefert dann den Zeiger auf daserste Zeichen zurücksodass sie unten aufrufenkönnennurScharsternchenNummerzehn ?? nicht malSoundtracksdesTeutoburgernull Fehler null Warningschon mal nicht schlecht aus also keinender Compiler findet zumindest keinen Ärger mit lokalen Variablen nur so wasich für ?? bis zu den Rittern ausdennhier steht jetzt ja eins Zeigerauf ein Zeichen gesehen dass uns der Begriff Umgebung nur ein Zeichen anzeigtist nicht allzu intelligentwerde jetzt an dieser Stelle auch an ?? weiterlesen können bis die null kommtes ?? muss ich jetzt bisschen anders dran ich lasse mir mal denSpeicher anzeigendie Magnet über das Videoauf YouTube Memoryan dieser Stelle lass ich mir meinen Speicheranzeigenzwei drei achtzwei zwei zwei zwei drei acht als an der Stelle ist anscheinend was resigniert Wortstellezwei drei acht hexadezimalnatürlich zwei dreiachtund ersehen Sie das übersetztdas es üblichim Debugger das man dann den den Speicher auch als Ass kie daneben anzeigt als sie es in diversen Speichers hexadezimalund das in diesen Ass kievier zwei drei sechs drei drei drei fünf null null hexadezimalund es ist eben B sechs drei fünf und null am Endein Zeichen genau das was ich haben willdas geht wirklich die richtigeZeichenkette im Speicher nicht irritieren lassen dass hier der Debugger das nicht anzeigte zeigt das erste Zeichenbei der nicht allzu klug ist könnt ihr anfangen sie Zeichenkette zu lesenbis zur null?? dazuder Ordnung halber sollte ich jetzt noch was dazu schreiben ist bisschen überflüssig hier aber im größeren Programm sollte ich noch was dazu schreibenja das Ding wieder freigeben also irgendwie am Ende des Programmswas auch immer zwischendurch passiertwenn nicht ist sie nicht mehr brauchewenn ich diesen Code nicht mehr braucht soll ich sagen freeCdas ist also der Hinweis an System das es diesen Speicher jetzt anders verwenden kannkeine schlechte Idee wäre danach großes C auf null zu setzenmacht man gerne malaus Sicherheitsgründen?? Mandant auf zugreift gibt's den Absturzaber auf jeden Fall muss es Frieder noch darein wenn sie was mit Memory Brocade reservierenBeistrichda waren wir wenn wir sie was mit Memory eloquent reservieren dann sollten Sie das auch mit free freigebensonst ist es eben für diese für das System für die Laufzeit ihres Programms blockiert irgendwann ist der Speicher vollund fertig ist das reservieren danachweiß ich natürlich nicht ?? was in C steht danach kann das System mit dem machen was da stehtin der Speicherstelle was es will also ?? soll ich nicht auf das zugreifen was in C stehtBeistrichdass noch mal in Einzelteilen was passiert denn jetzt einig in diesem Programmdas noch mal im Speicher siehtso befangen hier anzulaufeneine Zeichenkettedie mit dem Buchstaben BAT und so weiterbefüllt wirdamdie Komma unserer Masche mein Speicher anguckenwie Human Memorydas wäreimmer ganz kleinso diese Sport diese Zeichenkette hiersehen da zeigte unsan was da drin steht null sechs zwei vier null sechs sieben sechs und so weiter aber zeigt uns aktuell nicht an wo sie steht?? gucken ihn das nichtdas heißt?? müssen mal fragen?? Wortbeobachten sie können mir den Ausdruck angeben der dann in Anführungszeichenbeobachtet wirdsage mal eses beobachtenLeerschrittwenn ich so vieldann eben von mir aus die Adresse von es von nullbesser dasso an diese Adressesteht die Zeichenketteich sageesvon nullder vorderste BuchstabeKaufmannsund davordie Adresse vom vordersten BuchstabenS und es von nur mit dem Kauf und davor ist für Zeder selber sie sie nur dass die Entwicklungsumgebunghier so klug ist wenn ich es sage schreibt sie sofort die Zeichenkette ?? ich will die Adresse haben so sage ich es von nulldas vordersteZeichen das weiße Zeichen von der Zeichenkette und Auffassung davon zu sagen die Adresse vom vordersten Zeichen also beineuen F vier hexadezimalbei neun ?? vier hexadezimalsoll diese ZeichenkettestehenfreuenF vierokay Business hier an der Seiteder steht offensichtlich die Zeichenketteneun F null neun eins neun F zwei hundert drei und hier geht's dann los mit der abschließenden Euter steht die Zeichenkettedass es meine Variable es hierdannrufe ich diese Funktion hier auf Soundexvon esesder Name eines Reisist gleichzeitigein Zeiger auf den vordersten Eintrag also was meine Funktion sonntägliche Gerichtist schlicht und ergreifend diese Zahl hexadezimalneun F vierich gehe mal dareinStepp in twoda obenbin in meiner Funktion der Trennung zu sehen war damals neun F vierdas ist hier angekommenes ist nicht die gesamte Zeichenkette angekommenalles was angekommen ist ist ein Zeigerauf das erste Zeichen der Zeichenketteist nichts ?? sind jetzt nicht nuracht Buchstaben übertragen wordensondernnur dieser Zeiger diesem Fall sechzehn Bit sechzehn Bitzeigerso jetzt sage ich Reserve mir doch mal fünf Speicherplätzemanuelle Geld fünfLawrence immer wieder zurückähmwosind wir hier Kotzwei drei achtda sind jetztdann wohlvon Speicherplätze reserviertPunkt zweidrei achtnull eins zwei drei vier fünf sechs sieben acht Sisi in der schickes ?? ziemlicher Blödsinn drinreserviert heißt eben nur reserviert reserviert heißt nicht dass das abgeräumt istwas da stehthängt vom Betriebssystemabaus Sicherheitsgründenwird es in einigen Betriebssystemeneben auch gelöschtwerden vorheraber C verlangt das sieverlangt nur dass diese fünf Bytes jetzt zur freien Verfügung sinddas er sonst keiner drin Rumvorwerksie garantiert nicht das fünf Bytes auf null stehenes gibt anderen Befehl mit dem man das machen könnteegal was sie fünf Beistrich dass man nicht auf Nulllohnt sich ja auch gar nicht das die auf null stehen weil ich habe sowieso was darein für die letzte null janajadass er sich darauf wieder nicht gelohnt ich schreib bitte sofort was in den fünf Bytes rein erst bei dir klein zu großder erste Buchstabedas Bden schreibe ich an die Stelle null von dem Retter müsse sich jetzt alsoist er gewesen Businessdamit sich letztes Coupéeinstellenda ist das Bhexadezimalvier zweites aber deine Zeilen schrieb man die vorderste Stelle von Demirel die Nummer null ?? dann schreibe ich die Nummer des Zeichens null an die nächste Stelle von dem reindahexadezimaldrei null ist also die Nummer des Zeichens null sie nebenbeidass es keine Magie was da passiert dass das rot wird es werden einfach alle Sachen die sich geändert haben rot angezeigtsie mich beinaheein Schritt zum nächsten welche dieser ganzen Zahlensymbolehaben sich geändert ?? werden automatisch rot gemachtzurUnterscheidungso jetzt der nächsteSender wird der auf drei null gesetzten Werte auf drei null gesetztund der letzte wird auf die Zahl null gesetzt das Ende einer Zeichenketteder steht auf der Zahldamit fangen wir an die ZeichenketteB null null null nullund die abschließende nulldarotiert das durch hierwie gehabtbestauntenessteht dir schon der richtige Code drin B sechster fünf und die abschließende null ?? hinten die abschließende null??damit gehen wir rausaus der Funktionin der Variablen C insgesamt ähm gesehensteht ein Zeigermit Wasser zurückgegeben habe an den Zeiger auf den reservierten Bereich zurückgegebenzwei drei acht zwei drei acht dieser reservierte Bereichedamit könnte man jetzt arbeitenzum Schluss sage ichwir wollen Speicherbereich auf wieder freigeben der Widgets ist wahrscheinlich klassisches passierender Dateien verstehendas System merkt sich nur intern hochinteressant das es bei der nicht der stetige Sinn das System merkt sich nur intern vor allem dass dieser Speicherbereich freigegebenist ob der dasselbe drin steht wie vorher oder nicht der garantiert C nichts also nachdem ich free sagekann erstehen was willalsdies war ja mit semi Sekante mich hier danach noch Benutzen weit sollte ich wirklich malirgendwas da hinschreibenähmalsoich könnte jetzt zum Beispielsagendaswäre eine Möglichkeit das aufzurufenandere Möglichkeitsowas aufzurufenwärekönnte zum Beispiel vergleichenwas aus SoundtracksvonBritney rauskommtähmund bitten rauskommt?? Möglichkeit Komma??Punktdas hört sich das so ähnlich an wieWettenwürde das nach diesem Algorithmusgleich seienoder nichtamGewässer zu schreiben noch also der gibt ihnen jene Zeichenketteder gibt ihm eine Zeichenketteund ich möchte dann in das gif reingehenwenn die beidenähnlich klingen hat man hier davorwohlähnlichist gleichfallsich möchte das gif reingehenwenn die beiden ähnlich klingen nach dem SoundexAlgorithmusähnlich klingenmuss ?? durch oben noch Standardpool haben soll Verwirrung hier in gutStandardpoolwürden sie jetzt diese Zeichenketteund diese Zeichenkette vergleichen ich möchte wenn die beiden gleich sindhier ähnlich auf tu setzenhinaus drin kommt der SCR CMBsie können ja in C nicht er gleich gleich dazwischen schreiben in modernen Sprachen schon aber in C nichteinigen unter Nachbarn schon wenn sie nicht in zehn tausendString kommt per Vergleich zweier Zeichenkettenund das liefert nur wenn die gleich sind plus minus einsje nachdem wie die stehen im Alphabet wenn sie nicht gleich sind und nullwenn sie gleich sind und damit String kommt er gehteuch nochtutgutPunkt Haardas dann ausder Sache dass er ja was mit den Ergebnissen nicht also ich hohle nicht nur diesen diesen Code das beschreibtwieman so sovielich wohl nicht nur den Code der das beschreibt ich nehme diesen CodeZeichenkettenoch mal an Angola Zeichenkette und guckeob die beiden identisch sinddann Leute sich allmählich wirklich die Speicher zu reservieren jetzt wird das Ergebnis wirklich benutztund ich will nicht dass mich jemand anders in den Speicherreinschreibtauf mein Bett tritt sozusagenwenn sie dashier als lokale Variable anlegenwie das eben hatten einfachoder fürs zu Beginn hatten ScharCoachund so weiterdas machen also kein variables lokales FA ist eben nicht gesichertdass ihnen danachkeinerdarüber latscht insbesondere könnte das System auch sagen auch den Speicherplatz könnte ich gebrauchen für ganz was andereshat ihn daseinmal rodenamwenn sie so machen mit Memory Lockheed weist das System diese fünf Bytes sind unantastbar sozusagendiese fünf Bytes darf ich nicht anfassenbisich erfahren dass ich siewieder anders vergeben kann mit dem Viehdabei sind die da Komma dass das ?? Komma was ist hier passiertähmdie?? bis hierhinsoin den ??jetzt fängt er damit andass er diese Soundexfunktionvon der Zeichenkette BrittenaufruftKomma reindas ist jetzt ein Aufruf unserer Soundexmethodedie Zeichenkette soll stehenineins eins einsnull hexadezimaleinseins eins null hexadezimalda sind es Briten mit der null an das es jetzt dieAdressedes ersten Zeitzeichensein Zeiger auf das erste Zeichen der Zeichenkette bittenich reservierte Speicherplatz für das Ergebnisbei null?? bei bei zwei vier nullSpeicherplatzfür das Ergebniszwei vier null Speicherplatz für das Ergebnis reservierte sind also nicht die passive Stück Müll drinund jetzt fang ich an den zu füllendiesen Müll sozusagen diesen Müll zu überschreibenda vornedas erste Buchstabe Azu Buchstabe Bund so weiter und so weiterund irgendwannist das Ganze durchgebuddeltund am Ende der Sonderfunktiongebe ich die AdressezurückPunkt ein Ausführendieser Adresse hier an der das stehtzwei vier null zwei vier null da steht jetzt mein Sound Xcode verbreitendas war die fünf reservierten Whitesich gebe die Adresse zurückdie Adressezwei vier null einen Zeiger auf die zweiundvierziggebe ich zurückdaswar der hintere Teil als was sie aus dieser Funktion zurückkommt ist einfach nurwo steht das Ergebnisim Speicherunsinniger Zeichenkettenmachen und Zeiger auf das ersteZeichen der Trend jetzt aber den vorderen hierdie Funktion aber für Britney aufrufenda Reinzeichenkettejetzt hier Seins eins null achtData unsere Zeichenkette wohl abgelegt eins eins null acht?? finde ichTagehandelneinsnull acht es ist aber nett durch zweimal im Speicherkonnte mehrfach vorsich erinnern?? jetzt haben wir diese Kopie von der Zeichenketteeins eins null achtein Zeigerauf das erste Zeichen das es was diese Funktion kriechtnächste Schrittwir reservieren fünf Bytes für das Ergebniszwo vier achthatte uns jetzt fünf Bytes reservierte achtzwo vieracht gesehendas es was er eben reserviert hattefür das erste Ergebnis beim ersten Aufrufmit bitte wahrscheinlichmich recht erinnere oder was der ?? zu viel Ergebnis jetzt Einspeicherung fliegenundnun kommt derdieser Neurochirurg hält Aufrufzwei vier acht zwei vier acht müsstewerden zwei vier fünf sechs siebenachtab dadarf einiges anzuführenund so weiter und so weiter bis wir am Ende sindnun dahinBeistrich etwas dünn Sinn ist tatsächlich derselbe Code für Soundtracksist bitten und bittegleich klingendund da geht jetzt rausjetzt haben wirfür Stringkompereinen Zeiger auf das Ergebnis hier von demAnzeige auf das Ergebnis von dem String kommt der guckt ob die beiden Zeichenketten identisch sindja sie sind identischgerade gesehen B sechs drei fünf und die abschließende null das heißt Wiki ist es ähnlichBeistrichPreise für Soundexsind diese beiden Namen ähnlichgenauohne Memory ?? Kate hättedieses hier auch dahin geschrieben werden können oder deine im Webist es jetzt kein Problem weil die alle drei gleich sind aber die hätten nämlich alle drei gleich sein müssen insofern ungeschicktes Beispielanaber es wäre nicht garantiert gewesen dass das Ergebnis da steht es hätte auch das erst überschreiben können oder dieses Überschreibenwird einfach irgendwo speichern können wo der Compiler glaubt Komma sodasser mit Manuel und Kate sagen sie eben gibt mir diese fünf Bytesund dann Finger wegsolange bis ich free sageist ?? heikle Geschichte und geht auch gerne schief dass es ein an eine Stelle an der AC Programme und auch C plus plus Programme gerneProbleme haben die übliche Stellung auch die übliche Stelle an der man sich irgendwelcheEindringlingeeinfangen kanneine Geschichtehabe ich hier noch nicht ordentlich gemachtsich die Zeile angucken dass es echt gefährlichdass das so da stehtwas ist an dieser Zeile nicht sauberder Speicher bleibt reserviert genau?? Soundexlegt diese fünfBytes an im Speicherund niemand gibt sie wieder frei bei diesem Programm ist das kein Problemes endet sowieso unter wird alles wieder freigegebenim großen Programm kann das ein Problem seindiese Funktion reservierte Speicher und niemand gibt das wieder frei das heißt in der Situation sowie das da steht Zwanziger keine Chancedas wieder freizugebenmüsste jetzt also tatsächlichHilfsvariablenanlegenum dann den Speicherplatz wieder freigeben zu können ich müsste hier sagenScharsternDist gleichSongtext mit mir sind meine Forschung gemacht jedoch C nehmen könnenhierfür brauche ich auch eine extra variableähmScharstehen äh ?? ist gleichdritten sound jetzt kann ich die alle hübsch freigebenwie CIDIE R sich auch die selbst Hilfsvariablenwardein Mac machendamit ich mich hier auch nicht vertriebesieht gut aus so wird es also funktioniertsie holen sich den Kot als Zeichenkette in eine Zwischenvariablezwischen Meyer zeigt einfach nur auf das erste Zeichenund dann haben Sie die Möglichkeit diese zwischen Variable hier Hilfsvariablezu Benutzungsendewieder freizugebensonst ist es nicht saubermitsamtDichtefunktiondie man vernünftig verwenden kannBusiness etwas gefährliche Funktionmuss aus in der Dokumentationstehen vor sich diese Funktion resigniert Speicherplatz der nach ?? freigegeben werden muss nicht vergessendas Essen bisschen heikelkönnte man noch anders machenmit List und Tückeaber so haben sie normalem Lockheed gesehenen free gesehenund nun würde mandiese Funktion hier und den ganzen anderen Kram Auslagenin eine eigene Dateikönnen Sie das mal in eine Datei Sound Ex Haar Soundex Cin die diese ganzen Innereien hier ausgelagertsind ?? mit in meiner Maine Datei möchte ich das einfach verwenden wie der Funktionsbibliothekmöchte einfach SonderfunktionSoundexhabenaus einer Bibliothekschreiben Sie meine Header-Datei hundert C Datei oder extrahierenSie aus diesem Ding jetzt in der Header-Datei und zitterteder erste Schritt ist einfach willigen Asthma Dateien anAnteil eins okay und die speichere ich jetzt alsim selben Verzeichnis wird es als offen Desktop hier sehr schöndie Speicher ich jetzt alsExCund noch ?? neue Dateiund die speichereich alsSoundtracksPunkt Haarin der Header-DateiInclude Guardsdas ist immer die Standardausstattungin StuttgartF Nord die Vereinsjajetzt kommt ein Symbolwas skandiert eindeutig ist man immer gerne denNamen der Dateien GroßbuchstabenPunkt Songtext sowasHauptsache ein eindeutiger Name der nicht einmal vorkommtwenn dieses Symbol noch nicht definiert ist das heißt wenn der Compiler diese Datei zum ersten Mal siehtdefiniere ich dieses Symbolskommt ein ganzerKrempel der getan werden soll??Ende von demsoCompiler diese Datei zum zweiten Mal sieht ist Soundex Haardefiniert und der geht da nicht rein das sind die Glutgehaltsin der Header-Dateistehen die Deklarationenunter anderendaher eigentlich nur die Deklaration von den Funktionen die spannend sindnun die einzige spannende Funktion ist hier Soundexdieses mit groß zu klein und so weiterKlammer zu groß die von zu musste nach außen nicht sichtbar seinSoundex ist die spannende Funktion die schreibe ich in die Header-Dateimit einem Semikolondas ist eine Deklarationder Hinweis an den Compiler okay irgendwowird zur Funktion Soundex geben namens Soundex Dieb nimmt eine Zeichenketteund liefert eineeinarbeiteauf ein Zeichen aus einer offenen Zeichenkette zurückeine Deklarationdas war schon dieHeader-Dateischon die Header-Dateiund jetzt kommt die Zederdateidas jetzt die Innereienzusammengeklapptso ich nehme die ganzen Innereien hierKlicksso den ganzen Innereien für die Zieldateinur gucken ob wir damit leben können wird der Compiler das sie kompilierenkönnen klein zu groß char und so weiterdie Tabelle ja das wird alles kombinieren können?? Memory eloquentwird er nicht kompilieren können hier muss nochStandardlippeinPunkt in Maine gar nicht?? Komma doch irgendwieob sie das Visier stehend ein Mensch auch Standardlippwegen freeOhrenschier die C DateiGebrauchStandard Clip wegen Memory Lockheedschonfast gewesen sein??ausgelagertsie noch einbisschen aufräumenwas muss ich jetzt alles noch tun??genau in der Maine Datei ist ja jetzt Soundex noch ganz bekannte Funktion noch gar nicht bekannt ?? mal ganz dreist kommt ??Protect Macüber viele Fehler??Functions Soundtext erklärt im Besitz ?? sie dass es sogar ohne WarnungPC Standard ist an der Stelle sehr laschdas ist nur eine Warnung des ?? diese Funktion nicht kann so auch leuchtende die Funktion ?? andas ist natürlich etwas unsicher das PC Standard das erlaubtdiese Funktion ist nicht bekannt weil die Deklarationhier fehltin Cloudund jetzt inAnführungszeichenweil es jetzt mein Programm gehört nicht zum System gehört SoundexPunkt habejetzt liest er die Deklarationein aus meiner Header-Dateiaus der Header-Datei Liste die Deklarationeinbitter Trotzdem auf die Nase fallenaberder erste Schritt wird funktionieren?? Protect Macsoin naja dass sie das immer besser aus wenn C wird kompilierter meckertdass diese Variable ähnlichnicht weiterverwendetwird er schon wissen wiran der nichts mittäglich diese Datei kompiliert mein C wird kompiliertaber jetzt kommt diese Geschichte hierangefallen externeSound expertin Mainewas will uns damit jetzt schon wieder sagender Compiler nimmtdie C Dateien die sie ihm hier in der Liste Silvia nimmt der Compiler und kompiliert diein Objektcode so heißt ?? Vorstufe und der Linker nimmt ?? Objectcodeund versucht die ganzen Verbindungenverlinkt die ganzen Verbindungen richtig zu machen die Funktionsaufrufeinsbesondere abzugleichender Linker stellt jetzt festder Compiler hat Medizin kompiliertund da kommt eine Funktion vornahm SoundexSongtexte für den Menschenschönaber diese Fusion Soundex wird nirgendwo wirklich gebaut in den anderen Dateien und dasnervt den Linkerkann eine Frage die Funktion bitte auch nirgends so gebaut dem was jetzt noch fehlt istich habe die Soundex Punkt sie Datei gar nicht kompiliert so Soundex Punkt sie gehört noch dazuan der Stelleder Compiler soll mein C kompiliertder Compiler sollSound Exil kompilierendas an sie mit der Liste und dann soll der Linker die Ergebnisse zusammen wendenund jetzt wird der tatsächlich auch Soundexfinden die Funktion am Soundex finden Sie ist ja in der Datei drin Komma Protect Macunglaublichnull Fehler null ?? linksnebenConammergerade noch mal reingehendas auch wirklichwie gewünscht funktioniertimmer hierhin ausführen des Cursorgehtdas ehrlich darein also soweit sie das gut ausKomma dassunser ausgegliedertdieHauptdatei ist jetzt deutlich freundlicherich sag nur noch in Cloud Soundexhaarund der Rest ist deutlich freundlicher ich verwende einfach die Soundex Funktionund die Details sind hier in Soundex See verstecktBeistrich ob sich immer noch erinnert es geb noch ein paarSchönheitsoperationdie man jetzt hier vornehmen würde in dieser Datei?? ich möchte das niemand sonst diese Funktion klein zu groß siehtund ich möchte das niemand sonst diese Funktionstabellesieht äußerte sozusagen sehen kannich möchte diese Funktion klein zu groß versteckenvor allen anderen und ich möchte diese Tabellevor allen andern versteckendenen sie sich nochin der richtigen Spur static static oder extra normalerweisesechsterund damit kann es im Prinzip für alle sichtbar sein ich möchte aber dass sie für mich behalten in der Bibliothekauch damit keine Konflikte gibt jetzt jemand anders Anfänge Funktion scheint zu groß zu schreiben oder Namen mit Tabellen am Tabelle zu schreiben die würde man ständigmachentätig heißtsie sind außerhalbdieser Dateinicht sichtbar?? ich hab jetzt meine eigenensang man einen Sandkasten in dieser Datei hierdiese Funktion ist für alle anderen unsichtbar diese Tabelle ist für alle anderen Dateienunsichtbardiese hier mach ich ausdrücklich sichtbardie soll er verwendet werdenob es kann mir keiner irgendwie inzwischen Funke mit dem Kramman für die hier sogar noch ?? kannstruhig dabei bin mit dem anderen Konzept davor schreibendie Tabelle bei der konstant ich werde sie niemals ändern?? der Compiler die Chance die Anderson Speicher abzulegenliegt einfach zum Programm dazunicht zu den Variablen dazuKleinkram nicht so spannendnaja ebendieses Kleinkram ?? wenig Platz hat auf dem Typenschild kein Kleinkram werde das einemdas Programmund es ist nur sicherer weissagen hier gar nicht geschrieben werdenso sehr das jetzt ganz offiziell aus noch einmal Mac sicherheitshalberwarumdeklariere ich nicht klein zu groß in Soundex haarkleinzu groß ist der wirklichen Funktion die verborgen ist die sollen nurhier verwendet werden in dieser Datei verwendet werden verwende sie nur da ich möchte sie nicht der Welt geben ich möchte nur intern verwertensozusagenin ein Zahnrädchen in meiner Maschinen am Songtextdieses Zahnrädchen ist nur für mich dafür niemanden sonst das Erdreich aus der Taganund ich deklariere die Funktion nicht hierdie Welt da draußen solche Funktionen nicht verwendenSoundexdie Fusion am Songtext deklariere ich hier damit andere Leute diese Funktion verwenden könnenaberklein zu groß ist für mich alleinedeklariere ich dann nichteine ganz abwegige Frage zur Laufzeitdie Soundtracks Funktiondie können Sie ja minder Zeichenkette von zehn Zeichen von hundert Zeichen von einer Million Zeichen Fütternvon ähm Zeichen füttern die füttern da in Zeichen reinkann sich überlegen okay wie groß ist die Laufzeitdieser Soundex Funktionwenn sie dein Kennzeichenhabengroß wäre die Laufzeithier mit Kennzeichenreinwie groß wäre die Laufzeit dieser FunktionsrufvonBass wäre die Laufzeit dieser Funktionwie langsam wir diese Funktion wenn ich mit langen Zeichenketteneingeheokayalso im Regelfall wird sie nicht langsamer ich suche ja nur die ersten dreiZiffer dieses kurz zusammen und wenn ich mit den ersten drei Ziffern fertig bin ist Feierabenddas heißtauf eine Zeichenkette mit der ich da reingehesuper lang ist bin ich sowiesonach drei Zeichen dann fertig nach ?? drei Ziffer nicht in den Code geschrieben habe wovon eins Konstante Laufzeit würde man hinschreibennoch offen zwei wird sich in Schreiben Oberhofer Einzel möglicherweisehinschreibenmit einer Fußnotewenn sie eine Zeichenkette haben mit Zeichen die sich wiederholen?? dann gehen wir doch viel längerweil ich schreiben ja Wiederholungennicht rein ich gucke ja ob ich denselben Code noch mal habe ?? dass die die maximaleLaufzeitist ?? andere Geschichte die maximale Laufzeit ist O von Nweil ich tatsächlich mit einer hinreichendenblöden Zeichenkette mit der ich reingehejedes Zeichen angucken mussweil ich die kurz ständig wegschmeißen was immer der selbe Code istist bisschen raffiniert an dieser Stelle aber im Prinzip würde man sagen wovon eins für normale Zeichenkettendie nicht aus eine Millionmal den Buchstaben A bestehennormale Zeichenkettenoffen