ไลบรารีที่ให้ฟังก์ชั่นสตริงและยูทิลิตี้ใน C ก่อนที่จะใช้ให้ทำ cd c-string/ && ./setup.sh เพื่อติดตั้งไลบรารี
#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 of char * ใช้เพื่อแสดงถึงเวกเตอร์ของอักขระ ส่วนใหญ่จะใช้เพื่อเป็นตัวแทนของบัฟเฟอร์พื้นฐานของสตริง แต่ยังสามารถใช้เช่น StringBuffer ใน Java, std::stringstream ใน C ++ หรือ StringSink ในแอสเซมบลีสคริปต์ ทำด้วย C-Vector
typedef ของ char const * ใช้เพื่อแสดงสตริง มันถูกยกเลิก NULL เพื่อให้สามารถเข้ากันได้กับไลบรารี C Standrd
เวกเตอร์ของสตริงเพียงแค่ CVECTOR(String) , mafe กับ c-vector ใช้โดย String_split และ String_split_by_char
โครงสร้างที่อธิบายถึงสตริงขนาดคงที่ไม่เปลี่ยนรูป
int len : ความยาวchar const *str : ตัวชี้เนื้อหา เมื่อรวมกับฟังก์ชั่นที่ประกาศไว้ด้านล่างมีฟังก์ชั่นอื่น ๆ ที่ทำงานบน StringBuffer ที่สร้างขึ้นจากมาโคร cVector_with_name จาก C-Vector
สร้างสตริงบัฟเฟอร์จากตัวอักษรสตริงโดยไม่ต้องจัดสรรบนฮีปนั้นใช้ได้เฉพาะภายในขอบเขตที่สร้างขึ้น
char const * : ac string ตัวอักษรกดจำนวนไบต์หนึ่งต่อหนึ่งเข้าไปในบัฟเฟอร์
StringBuffer *sb : บัฟเฟอร์ที่จะผลักไบต์char *bytes : ตัวชี้ไปยังไบต์ที่จะถูกผลักint n : จำนวนไบต์ที่จะผลักดันCVECTOR_STATUS ): อ่านโหมดเงียบของ C-vector กดสตริงที่สิ้นสุด NULL ลงในบัฟเฟอร์
StringBuffer *sb : บัฟเฟอร์ที่จะผลักสตริงchar *str : สตริงที่จะถูกผลักCVECTOR_STATUS ): อ่านโหมดเงียบของ C-vectorสร้างสตริงว่างเปล่าใหม่
String ): สตริงว่างที่สร้างขึ้นใหม่สร้างสตริงจากตัวอักษรสตริงโดยไม่ต้องจัดสรรบนฮีปนั้นใช้ได้เฉพาะภายในขอบเขตที่สร้างขึ้น
char const * : ac string ตัวอักษรสร้างสตริงใหม่จากก้อนไบต์
char *bytes : ตัวชี้ไปยังไบต์ที่จะใช้เป็นเนื้อหาint n : จำนวนไบต์ที่จะใช้String ): สตริงใหม่ที่มีก้อนถ้าไบต์เป็นเนื้อหา สร้างสตริงใหม่จากสตริง NULL ที่สิ้นสุดแบบธรรมดา
char *str : สตริงที่สิ้นสุด NULLString ): สตริงใหม่ที่มีสตริง NULL สิ้นสุดเป็นเนื้อหาString str : The Stringint ): ความยาวของสตริง โคลนสตริง ใช้งานได้เหมือนวิธีที่ strdup ทำซ้ำสตริงที่ถูกยกเลิก NULL
String str : สตริงที่จะถูกโคลนString ): สตริงใหม่ที่เหมือนกันเชื่อมต่อเนื้อหาของสองสายเป็นหนึ่งเดียว
String str1 : สตริงแรกString str2 : สตริงที่สองString ): สตริงใหม่ที่มีเนื้อหาที่ถูกต่อกัน แบ่งส่วนของสตริง อนุญาตให้ทำการจัดทำดัชนีย้อนหลังเชิงลบ (เช่นดัชนี -1 หมายถึงรายการสุดท้าย)
String str : สตริงที่ส่วนจะถูกหั่นเป็นชิ้นint fi : ดัชนีเริ่มต้นint li : ดัชนีสิ้นสุดString ): ส่วนที่หั่นบาง ๆ หาก fi มีขนาดเล็กกว่า li หรือ fi / li มีขนาดเล็กกว่า 0 แม้ว่าจะถูกแปลเป็นดัชนี psitive หรือถ้าพวกเขามีค่ามากกว่าหรือเท่ากันกว่าความยาวของสตริงแล้ว NULL จะถูกส่งคืนแฮชสตริงโดยใช้ฟังก์ชั่นการแฮชแบบไม่ใช้วิธีการพึมพำ -2
String str : สตริงที่จะถูกแฮชuint32_t ): แฮชของ str ผนวกสตริงที่ถูกยกเลิก NULL ธรรมดาในตอนท้าย
String *str : ตัวชี้ไปยังตัวแปรสตริง มันอาจจะจัดสรรสตริงให้เป็นตำแหน่งหน่วยความจำที่ใหญ่กว่าดังนั้นจึงจำเป็นต้องกำหนดตัวแปรใหม่ด้วยchar *bstr : สตริงที่ถูกยกเลิก NULL ที่จะต่อท้ายCVECTOR_STATUS ): อ่านโหมดเงียบของ C-vector ในโหมด verbose มันจะกลับ 1 หากการผลักดันตัวละครใด ๆ ล้มเหลวมิฉะนั้น 1เปรียบเทียบสองสาย
String str1 ,String str2 : สตริงที่จะเปรียบเทียบbool ): true ถ้าสตริงทั้งสองมีความยาวและเนื้อหาเท่ากันมิฉะนั้น falseปลดปล่อยสตริงจากหน่วยความจำ
String str : สตริงที่จะเป็นอิสระvoid )สร้างและส่งคืนเวอร์ชันคงที่ของสตริง
String str : แหล่งที่มาFixedString ): สตริงคงที่พร้อมเนื้อหาของอาร์กิวเมนต์แรกแยกสตริงตามลำดับอักขระ
String str : สตริงที่จะแยกออกchar const *seq : ลำดับอักขระVector_String ): สตริงใหม่ที่เป็นผลมาจากการแยก เช่น String_split แต่แยกตามอักขระแทนลำดับ
String str : สตริงที่จะแยกออกchar c : ตัวละครVector_String ): สตริงใหม่ที่เป็นผลมาจากการแยก ลบ t ชั้นนำ , n และ