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 );
} char *のtypedef。文字のベクトルを表すために使用されます。主に文字列の基礎となるバッファーを表すために使用されますが、JavaのStringBuffer 、 std::stringstream 、またはAssemblyscriptのStringSinkのように使用することもできます。 Cベクトルで作られています。
char const *のtypedef。文字列を表すために使用されます。 C StandRDライブラリと互換性があることはNULLです。
文字列のベクトル、Just CVECTOR(String) 、C-Vectorを備えたMAFE。 String_splitおよびString_split_by_charによって使用されます。
不変の固定サイズの文字列を記述する構造体。
int len :長さ。char const *str :ポインターコンテンツ。 以下で宣言された関数とともに、Cvector_with_nameマクロから生成されるstringbufferで動作する他の関数があります。
ヒープを割り当てることなく文字通りの文字列から文字列バッファを作成します。これは、作成されたスコープ内でのみ有効です。
char const * :ac stringリテラル。バッファーに1つずつ多くのバイトを押します。
StringBuffer *sb :バイトがプッシュされるバッファー。char *bytes :プッシュされるバイトへのポインター。int n :BRプッシュされるバイト数。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 : NULL終端文字列。String ): NULLコンテンツとして終了した文字列を備えた新しい文字列。String str :文字列。int ):文字列の長さ。文字列をクローンします。 strdup NULL終端文字列を複製する方法のように機能します。
String str :クローン化される文字列。String ):新しい同一の文字列。2つの文字列の内容を1つに連結します。
String str1 :最初の文字列。String str2 :2番目の文字列。String ):連結コンテンツを持つ新しい文字列。文字列のセグメントをスライスします。負の後方インデックスが許可されます(つまり、インデックス-1は最後の項目を指します)。
String str :セグメントがスライスされる文字列。int fi :開始インデックス。int li :終了インデックス。String ):スライスしたセグメント。 fiがliまたはfi / li 0も小さい場合、詩的なインデックスに翻訳された後、または弦の長さよりも大きいまたは等しい場合でも、 NULLが返されます。Murmurhash-2非暗号化ハッシュ関数を使用して文字列をハッシュします。
String str :ハッシュされる文字列。uint32_t ): strのハッシュ。最後にプレーンNULL終端文字列を追加します。
String *str :文字列変数へのポインター。おそらく、文字列をより大きなメモリの位置に再割り当てするので、変数も再割り当てする必要があります。char *bstr :追加されるNULL終端文字列。CVECTOR_STATUS ):c-vectorのサイレントモードを読み取ります。冗長モードでは、文字のいずれかをプッシュすると1故障し、それ以外の場合は1返されます。2つの文字列を比較します。
String str1 、String str2 :比較される文字列。bool ):両方の文字列が長さと内容が等しく、それ以外の場合はfalseの場合はtrue 。メモリから文字列を解放します。
String str :解放される文字列。void )文字列の固定バージョンを作成して返します
String str :ソース。FixedString ):最初の引数の内容を持つ固定文字列。文字シーケンスによって文字列を分割します。
String str :分割される文字列。char const *seq :文字シーケンス。Vector_String ):分割から生じる新しい文字列。 String_splitのように、しかし、シーケンスの代わりにキャラクターによって分割されます。
String str :分割される文字列。char c :キャラクター。Vector_String ):分割から生じる新しい文字列。主要なtを削除します。 、 nおよび