مكتبة توفر وظائف ومرافق السلسلة في 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 من char * . تستخدم لتمثيل ناقل الشخصيات. يستخدم بشكل أساسي لتمثيل المخزن المؤقت الأساسي للسلسلة ولكن يمكن استخدامه أيضًا مثل StringBuffer في Java أو std::stringstream في C ++ أو StringSink في Assectblyscript. مصنوعة مع 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 التي يتم إنشاؤها من Macro CVector_With_Name من C-Vector.
يقوم بإنشاء سلسلة من الأسلاك من سلسلة حرفية دون تخصيص الكومة ، وهو صالح فقط داخل النطاق الذي تم إنشاؤه.
char const * : ac سلسلة حرفية.يدفع عدد من البايتات واحدة تلو الأخرى في المخزن المؤقت.
StringBuffer *sb : المخزن المؤقت حيث سيتم دفع البايتات.char *bytes : المؤشر إلى البايتات التي سيتم دفعها.int n : ثم عدد البايتات التي ستدفعها.CVECTOR_STATUS ): اقرأ الوضع الصامت لـ C-Vector. يدفع سلسلة إنهاء فارغة في المخزن NULL .
StringBuffer *sb : المخزن المؤقت حيث سيتم دفع السلسلة.char *str : السلسلة التي سيتم دفعها.CVECTOR_STATUS ): اقرأ الوضع الصامت لـ C-Vector.يخلق سلسلة فارغة جديدة.
String ): السلسلة الفارغة التي تم إنشاؤها حديثًا.ينشئ سلسلة من سلسلة حرفية دون تخصيص الكومة ، صالحة فقط داخل النطاق الذي تم إنشاؤه.
char const * : ac سلسلة حرفية.يخلق سلسلة جديدة من جزء من البايتات.
char *bytes : المؤشر إلى البايتات التي سيتم استخدامها كمحتوى.int n : عدد البايتات التي يتم استخدامها.String ): السلسلة الجديدة مع الجزء إذا كانت بايت كمحتوى. ينشئ سلسلة جديدة من سلسلة NULL من إنهاء.
char *str : السلسلة NULL .String ): السلسلة الجديدة مع السلسلة NULL المحتوى كمحتوى.String str : السلسلة.int ): طول السلسلة. استنساخ سلسلة. يعمل مثل كيفية تكرار strdup لسلسلة من إنهاء NULL .
String str : السلسلة التي سيتم استنساخها.String ): سلسلة متطابقة جديدة.يسلط محتويات سلسلتين في واحدة.
String str1 : السلسلة الأولى.String str2 : السلسلة الثانية.String ): سلسلة جديدة مع محتويات متسلسلة. شرائح شريحة من السلسلة. يُسمح بفهرسة للخلف السلبية (أي فهرس -1 يشير إلى العنصر الأخير).
String str : السلسلة التي سيتم من خلالها شرائح القطاع.int fi : فهرس البدء.int li : فهرس النهاية.String ): الجزء المقطوع. إذا كانت fi أصغر من li أو fi / li أصغر من 0 حتى بعد ترجمتها إلى مؤشرات نسخية أو إذا كانت أكبر أو متساوية من طول السلسلة ، فسيتم إرجاع NULL .تجزئة سلسلة باستخدام وظيفة التجزئة غير البلورية.
String str : السلسلة التي سيتم تجزئة.uint32_t ): تجزئة str . إلحاق سلسلة NULL عادي منتهية في النهاية.
String *str : المؤشر إلى متغير السلسلة. من المحتمل أن تقوم بإعادة تخصيص السلسلة إلى موقع ذاكرة أكبر ، لذلك يحتاج إلى إعادة تعيين المتغير أيضًا.char *bstr : السلسلة NULL التي سيتم إلحاقها.CVECTOR_STATUS ): اقرأ الوضع الصامت لـ C-Vector. على وضع المطول ، سيعود 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 و