A simple string buffer for C.
This library provides a simple string buffer which allows adding different basic data types.
It can be used to generate large strings without the need to worry about memory allocation or type conversions.
#include "stringbuffer.h" #include <stdio.h> int main() { // init the buffer with predefined size or with a provided size // use stringbuffer_new for predefined size struct StringBuffer *buffer = stringbuffer_new_with_options( 1024, // initial size true // allow resizing ); // different append functions stringbuffer_append(buffer, 'A'); stringbuffer_append_string(buffer, "12345"); stringbuffer_append_bool(buffer, true); stringbuffer_append_short(buffer, 150); stringbuffer_append_unsigned_short(buffer, 150); stringbuffer_append_int(buffer, 150); stringbuffer_append_unsigned_int(buffer, 150); stringbuffer_append_long(buffer, 150); stringbuffer_append_unsigned_long(buffer, 150); stringbuffer_append_long_long(buffer, 150); stringbuffer_append_unsigned_long_long(buffer, 150); stringbuffer_append_string_with_options( buffer, "12345", 1, // offset 2 // length ); // increase buffer size if needed to ensure capacity // and prevent multiple reallocations in case of many // append operations stringbuffer_ensure_capacity(buffer, 10240); // shrink the internal buffer to fit the exact value // of the current content and prevent using more memory // than needed. stringbuffer_shrink(buffer); // get a clone text value of the current buffer content char *text = stringbuffer_to_string(buffer); printf("The Text: %s\n", text); // we can clear the content we have so far and reuse the // string buffer instance stringbuffer_clear(buffer); bool is_empty = stringbuffer_is_empty(buffer); printf("Is Empty: %d\n", is_empty); // once done, free the buffer stringbuffer_release(buffer); } /* main */See Changelog
Developed by Sagie Gur-Ari and licensed under the Apache 2 open source license.