Perpustakaan yang menyediakan fungsi dan utilitas string di C. Sebelum menggunakannya, lakukan cd c-string/ && ./setup.sh untuk menginstal perpustakaan.
#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 );
} Typedef char * . Digunakan untuk mewakili vektor karakter. Terutama digunakan untuk mewakili buffer string yang mendasari tetapi juga dapat digunakan seperti StringBuffer di Java, std::stringstream di C ++ atau StringSink dalam rakitan. Dibuat dengan c-vektor.
Typedef of char const * . Digunakan untuk mewakili string. NULL diakhiri untuk tetap kompatibel dengan C Standrd Library.
Vektor string, hanya CVECTOR(String) , mafe dengan c-vektor. Digunakan oleh String_split dan String_split_by_char .
Struct yang menggambarkan string ukuran tetap yang tidak dapat diubah.
int len : panjangnya.char const *str : Pointer konten. Bersama dengan fungsi yang dinyatakan di bawah ini, ada fungsi lain yang beroperasi pada StringBuffer yang dihasilkan dari makro cvector_with_name dari c-vektor.
Membuat StringBuffer dari string literal tanpa mengalokasikan pada tumpukan, hanya valid di dalam ruang lingkup yang dibuat.
char const * : AC String literal.Mendorong sejumlah byte satu per satu ke dalam buffer.
StringBuffer *sb : Buffer di mana byte akan didorong.char *bytes : Pointer ke byte yang akan didorong.int n : Kemudian jumlah byte yang akan didorong.CVECTOR_STATUS ): Baca mode silent C-vektor. Mendorong string yang diakhiri NULL ke buffer.
StringBuffer *sb : Buffer di mana string akan didorong.char *str : String yang akan didorong.CVECTOR_STATUS ): Baca mode silent C-vektor.Membuat string kosong baru.
String ): String kosong yang baru dibuat.Membuat string dari string literal tanpa mengalokasikan pada tumpukan, hanya valid di dalam ruang lingkup yang dibuat.
char const * : AC String literal.Membuat string baru dari sepotong byte.
char *bytes : Pointer ke byte yang akan digunakan sebagai konten.int n : Jumlah byte yang akan digunakan.String ): String baru dengan byte jika konten. Membuat string baru dari string yang diakhiri NULL biasa.
char *str : NULL yang diakhiri string.String ): String baru dengan string yang diakhiri NULL sebagai konten.String str : string.int ): Panjang string. Klon string. Bekerja seperti bagaimana strdup menggandakan string yang diakhiri NULL .
String str : String yang akan dikloning.String ): String identik baru.Menggabungkan isi dua string menjadi satu.
String str1 : String pertama.String str2 : String kedua.String ): String baru dengan konten gabungan. Mengiris segmen string. Pengindeksan mundur negatif diperbolehkan (yaitu indeks -1 mengacu pada item terakhir).
String str : String dari mana segmen akan diiris.int fi : Indeks Mulai.int li : Indeks Akhir.String ): Segmen yang diiris. Jika fi lebih kecil dari li atau fi / li lebih kecil dari 0 bahkan setelah diterjemahkan ke indeks psitive atau jika mereka lebih besar atau sama dari panjang string, NULL akan dikembalikan.Hash sebuah string menggunakan fungsi hashing non-kripografi Murmurhash-2.
String str : String yang akan hash.uint32_t ): Hash dari str . Tambahkan string yang diakhiri NULL biasa di akhir.
String *str : Pointer ke variabel string. Ini mungkin akan merealokasi string ke lokasi memori yang lebih besar, sehingga perlu menugaskan kembali variabel juga.char *bstr : String yang diakhiri NULL yang akan ditambahkan.CVECTOR_STATUS ): Baca mode silent C-vektor. Pada mode verbose, itu akan mengembalikan 1 jika mendorong salah satu karakter gagal, jika tidak 1 .Membandingkan dua string.
String str1 ,String str2 : string yang akan dibandingkan.bool ): true jika kedua string memiliki panjang dan konten yang sama, jika tidak false .Membebaskan string dari memori.
String str : String yang akan dibebaskan.void )Membuat dan mengembalikan versi tetap dari string
String str : Sumber.FixedString ): String tetap dengan isi argumen pertama.Membagi string dengan urutan karakter.
String str : String yang akan terpisah.char const *seq : Urutan karakter.Vector_String ): String baru yang dihasilkan dari perpecahan. Seperti String_split , tetapi terpecah dengan karakter alih -alih urutan.
String str : String yang akan terpisah.char c : Karakter.Vector_String ): String baru yang dihasilkan dari perpecahan. Menghapus t yang terkemuka, , n dan