Ressource [C] cstr - Stringbibliothek [gelöscht]

Status
Für weitere Antworten geschlossen.

german

Aktives Mitglied
devCommunity-Experte
german erstellte eine neue Ressource:

[C] cstr - Stringbibliothek - voll kompatibel mit nullterminierten C-Strings

Historie

Es gibt mehrere Möglichkeiten Strings zu definieren. C hat aus historischen Gründen einen Weg gewählt, der sich letztlich als unkomfortabel herausstellt. Wie kann man sich das vorstellen?
Nehmen wir an, Peter steht mit dem Fahrrad am Ortsausgang von Hundsdorf. Leonie steht am anderen Ende der Straße am Ortseingang von Katzleben. Peter möchte wissen wie weit der Weg nach Katzleben ist, setzt seinen Kilometerzähler zurück und fährt los. Nach fünfzehn Minuten abgehetzt in...
Erfahre mehr über diese Ressource...
 

BAGZZlash

Neues Mitglied
Sehr coole Bibliothek. Hier mal noch ein paar Anregungen für zusätzliche Funktionen, zumal ein "replace" ja schon vorhanden ist:

InStr - durchsucht einen String, ob darin ein weiterer String enthalten ist. Gibt die Position des zweiten Strings innerhalb des ersten Strings zurück, falls dieser vorhanden ist und 0, falls nicht. Beispiele: InStr("Dies ist ein Test", "ist") ergibt 6, InStr("Dies ist ist ein Test", "ist") ergibt 6, InStr("Dies ist ein Test", "Banane") ergibt 0.

InStrRev - dasselbe wie InStr, nur dass "hinten" mit der Suche begonnen wird: InStr("Dies ist ist ein Test", "ist") ergibt 10.

Mid - schneidet Strings aus Strings heraus: Mid("Dies ist ein Test", 6, 3) ergibt "ist". Der dritte Parameter gibt dabei die Länge des zurückzugebenden Teilstrings an. Das finde ich eigentlich doof, besser und konsistenter wäre eine Angabe "von bis", d.h. z.B. "von Position 6 bis Position 8", das wären drei Zeichen ("ist"). Was meinst Du?

Split - zerlegt einen String an den Stellen, wo ein bestimmter String auftaucht und gibt ein Array von Teilstrings zurück: Split("Dies ist ein Test", " ") ergibt {"Dies", "ist", "ein", "Test"}

Join - die Umkehrung von Split, fügt die Teilstrings aus einem Array zu einem String zusammen, dazwischen wird jeweils ein String als 'Trenner' eingefügt: Sei TeilArray = {"Dies", "ist", "ein", "Test"}, dann ergibt Join(TeilArray, " ") wieder "Dies ist ein Test".
 

german

Aktives Mitglied
devCommunity-Experte
Danke für dein Feedback!

Also erstmal, weil ich das vermutlich doch noch nicht deutlich genug geschrieben habe - Sinn dieser Art der Stringimplementierung ist, dass man eben nicht das Rad für jeden Anwendungsfall neu erfinden muss. Du kannst den cstr genauso verwenden wie jeden normalen nullterminierten String in C. Im Falle InStr wäre bspw. die strstr Funktion im <string.h> bereits vorhanden, ohne zusätzlich eigenen Code dafür schreiben zu müssen und potenziell mehr Komplexität im Programm zu erzeugen.
Andere Dinge, wie Mid, existieren in C in dieser Form noch nicht. Da dort ein neuer cstr erzeugt werden muss, kommt man um eine eigene Implementierung nicht herum. In der cstr Lib heißt diese Funktion allerdings cs_substr (in Anlehnung an substr aus der C++ STL) statt Mid.
Da ich mich an der string Klasse von C++ lang gehangelt habe, gibt es Split und Join aktuell noch nicht. Kann ich aber relativ easy implementieren. Der Code dafür existiert schon hier in den Ressourcen ;)
 

german

Aktives Mitglied
devCommunity-Experte
Diese Ressource wurde entfernt und steht nicht mehr zur Verfügung.

Dieses Thema wird in einer anderen Ressource weitergeführt:
 
Zuletzt bearbeitet von einem Moderator:
Status
Für weitere Antworten geschlossen.
Oben Unten