Eine Bibliothek, die String-Funktionen und -Verleistungen in C. vor der Verwendung von cd c-string/ && ./setup.sh zur Installation von Bibliotheken liefert.
#include <c-string/lib.h>
#include <stdio.h>
#include <assert.h>
#include <string.h>
int main ( void ) {
String str = String_from ( "Hello, world!" );
printf ( "%sn" , str ); // Works, since it is NULL terminated.
String_append ( & str , "nfoo bar" );
printf ( "%sn" , str );
String str2 = String_clone ( str );
assert ( String_equal ( str , str2 )); // Identical
String_append ( & str2 , "nbaz" );
assert (! String_equal ( str , str2 )); // Different, since one of them changed.
String str3 = String_slice ( str2 , 0 , 5 );
assert (! strcmp ( str3 , "Hello" )); // You can use strcmp because it is NULL terminated.
// Always be sure to cleanup(aka. free) the strings to prevent memory leaks.
String_cleanup ( str );
String_cleanup ( str2 );
String_cleanup ( str3 );
} Ein Typedef von char * . Wird verwendet, um einen Vektor von Zeichen darzustellen. Wird hauptsächlich zur Darstellung des zugrunde liegenden Stringpuffers verwendet, kann aber auch wie StringBuffer in Java, std::stringstream in C ++ oder StringSink in Assemblyskript verwendet werden. Mit C-Vektor gemacht.
Ein Typedef von char const * . Wird verwendet, um eine Zeichenfolge darzustellen. Es wird NULL beendet, um mit der C Standrd Library kompatibel zu bleiben.
Ein Saitenvektor, nur CVECTOR(String) , MAFE mit C-Vector. Verwendet von String_split und String_split_by_char .
Eine Struktur, die eine unveränderliche Zeichenfolge mit fester Größe beschreibt.
int len : Die Länge.char const *str : Der Zeiger der Inhalt. Zusammen mit den nachstehend deklarierten Funktionen gibt es andere Funktionen, die auf StringBuffer arbeiten, die vom C-Vector von CVector_With_Name generiert werden.
Erstellt einen StringBuffer aus einem String -Literal, ohne auf dem Haufen zuzuweisen, nur im Erstellungsbereich gültig.
char const * : AC String Literal.Drückt eine Reihe von Bytes einzeln in den Puffer.
StringBuffer *sb : Der Puffer, in dem die Bytes gedrückt werden.char *bytes : Der Zeiger auf die Bytes, die gedrückt werden.int n : Dann Anzahl der Bytes, die BR gedrückt werden.CVECTOR_STATUS ): Lesen Sie den Stillemodus des C-Vektors. Drückt eine NULL -Kündigung in den Puffer.
StringBuffer *sb : Der Puffer, in dem die Zeichenfolge gedrückt wird.char *str : Die Schnur, die gedrückt wird.CVECTOR_STATUS ): Lesen Sie den Stillemodus des C-Vektors.Erstellt eine neue leere Zeichenfolge.
String ): Die neu erstellte leere Zeichenfolge.Erstellt eine Zeichenfolge aus einem String -Literal, ohne auf dem Haufen zuzuweisen, nur in dem von ihm erstellten Bereich gültig.
char const * : AC String Literal.Erstellt eine neue Zeichenfolge aus einem Stück Bytes.
char *bytes : Der Zeiger auf die Bytes, die als Inhalt verwendet werden.int n : Die Anzahl der Bytes, die verwendet werden.String ): Die neue Zeichenfolge mit dem Chunk If Bytes als Inhalt. Erstellt eine neue Zeichenfolge aus einer einfachen, NULL gekündigten Zeichenfolge.
char *str : Die NULL -Kündigung.String ): Die neue Zeichenfolge mit der NULL -Kündigung als Inhalt.String str : Die Zeichenfolge.int ): Die Länge der Zeichenfolge. Klone eine Schnur. Funktioniert wie, wie strdup eine NULL -Kündigungsfolge dupliziert.
String str : Die Zeichenfolge, die geklont wird.String ): eine neue identische Zeichenfolge.Verkettet den Inhalt von zwei Saiten zu einem.
String str1 : Die erste Zeichenfolge.String str2 : Die zweite Zeichenfolge.String ): Eine neue Zeichenfolge mit dem verketteten Inhalt. Schnitt ein Segment einer Zeichenfolge. Die negative Indexierung nach hinten ist zulässig (dh Index -1 bezieht sich auf das letzte Element).
String str : Die Zeichenfolge, aus der das Segment geschnitten wird.int fi : Der Startindex.int li : Der Endindex.String ): Das geschnittene Segment. Wenn fi kleiner als li oder fi / li kleiner als 0 ist, selbst nachdem sie in psisitive Indizes übersetzt wurden oder wenn sie größer oder gleich sind als die Länge der Saite, wird NULL zurückgegeben.Hashes eine Zeichenfolge, die die nicht kryptografische Hashing-Funktion Murmurhash-2 verwendet.
String str : Die Zeichenfolge, die gehasht wird.uint32_t ): Der Hash von str . Fängt am Ende eine einfache NULL -Kennzeichen an.
String *str : Der Zeiger auf die String -Variable. Es wird wahrscheinlich die Zeichenfolge zu einem größeren Speicherort verweisen, sodass es auch die Variable neu zuordnen muss.char *bstr : Die angehängte NULL -Kündigung wird angehängt.CVECTOR_STATUS ): Lesen Sie den Stillemodus des C-Vektors. Auf dem ausführlichen Modus wird 1 zurückgegeben, wenn das Drücken eines der Zeichen fehlschlägt, sonst 1 .Vergleicht zwei Saiten.
String str1 ,String str2 : Die Saiten, die verglichen werden.bool ): true , wenn beide Zeichenfolgen in Länge und Inhalt gleich sind, ansonsten false .Frei gibt die Saite aus dem Speicher.
String str : Die Zeichenfolge, die befreit wird.void )Erstellt und gibt die feste Version einer Zeichenfolge zurück und gibt zurück
String str : Die Quelle.FixedString ): Die feste Zeichenfolge mit dem Inhalt des ersten Arguments.Spaltet eine Zeichenfolge durch eine Zeichensequenz.
String str : Die Zeichenfolge, die aufgeteilt wird.char const *seq : Die Zeichensequenz.Vector_String ): Die neuen Zeichenfolgen, die aus dem Split entstanden sind. Wie String_split , aber spaltet sich durch ein Zeichen anstelle einer Sequenz.
String str : Die Zeichenfolge, die aufgeteilt wird.char c : Der Charakter.Vector_String ): Die neuen Zeichenfolgen, die aus dem Split entstanden sind. Entfernt das führende t , , n und