Strings

Strings — Текстовые буферы которые автоматически увеличиваются при добавлении текста.

Краткое описание

#include <glib.h> GString; GString* g_string_new (const gchar *init); GString* g_string_new_len (const gchar *init, gssize len); GString* g_string_sized_new (gsize dfl_size); GString* g_string_assign (GString *string, const gchar *rval); #define g_string_sprintf #define g_string_sprintfa void g_string_printf (GString *string, const gchar *format, ...); void g_string_append_printf (GString *string, const gchar *format, ...); GString* g_string_append (GString *string, const gchar *val); GString* g_string_append_c (GString *string, gchar c); GString* g_string_append_unichar (GString *string, gunichar wc); GString* g_string_append_len (GString *string, const gchar *val, gssize len); GString* g_string_prepend (GString *string, const gchar *val); GString* g_string_prepend_c (GString *string, gchar c); GString* g_string_prepend_unichar (GString *string, gunichar wc); GString* g_string_prepend_len (GString *string, const gchar *val, gssize len); GString* g_string_insert (GString *string, gssize pos, const gchar *val); GString* g_string_insert_c (GString *string, gssize pos, gchar c); GString* g_string_insert_unichar (GString *string, gssize pos, gunichar wc); GString* g_string_insert_len (GString *string, gssize pos, const gchar *val, gssize len); GString* g_string_erase (GString *string, gssize pos, gssize len); GString* g_string_truncate (GString *string, gsize len); GString* g_string_set_size (GString *string, gsize len); gchar* g_string_free (GString *string, gboolean free_segment); GString* g_string_up (GString *string); GString* g_string_down (GString *string); guint g_string_hash (const GString *str); gboolean g_string_equal (const GString *v, const GString *v2);

Описание

GString подобна стандартной C string, за исключением того что она автоматически увеличивается при добавлении или вставке текста. Также, она хранит длину строки, поэтому может использоваться для двоичных данных с включением нулевых байт.

Детали

GString

typedef struct { gchar *str; gsize len; gsize allocated_len; } GString;

Структура GString содержит общедоступные поля GString. Поле str указывает на символьные данные. Он может меняться при добавлении текста. Поле len содержит длину строки, не включая завершающий нулевой байт.

Поле str nul-завершённое и поэтому может быть использовано как обычная C string. Но она может перемещаться когда в строку добавляется или вставляется текст.


g_string_new ()

GString* g_string_new (const gchar *init);

Создаёт новую GString, инициализируя полученной строкой.

init : инициализируемый текст для копирования в строку.
Возвращает : новая GString.

g_string_new_len ()

GString* g_string_new_len (const gchar *init, gssize len);

Создаёт новую GString с длиной len байт буфера init. Поскольку длина обеспечена, init не должен быть nul-завершённым и может содержать встроенные nul байты.

init : начальное содержимое строки.
len : длина init для использования.
Возвращает : новая GString.

g_string_sized_new ()

GString* g_string_sized_new (gsize dfl_size);

Создаёт новую GString, с достаточным пространством для dfl_size байт. Это полезно если вы добавляете много текста в строку и не хотите перераспределять её слишком часто.

dfl_size : размер свободного пространства которое содержит распределённая строка.
Возвращает : новая GString.

g_string_assign ()

GString* g_string_assign (GString *string, const gchar *rval);

Копирует байты из строки в GString, уничтожает любое предыдущее содержимое. Она скорее похожа на стандартную функцию strcpy(), за исключением того, что вам не нужно беспокоится о наличии достаточного пространства для копируемой строки.

string : целевая GString. Её содержимое будет уничтожено.
rval : строка копируемая в string
Возвращает : целевая GString.

g_string_sprintf

#define g_string_sprintf

Внимание

g_string_sprintf устарела и не должна использоваться во вновь создаваемом коде. Эта функция переименована в g_string_printf().

Записывает форматированную строку в GString. Подобна стандартной функции sprintf(), за исключением того, что буфер GString автоматически расширяется для вмещения результата. Предыдущее содержимое GString уничтожается.


g_string_sprintfa

#define g_string_sprintfa

Внимание

g_string_sprintfa устарела и не должна использоваться во вновь создаваемом коде. This function has been renamed to g_string_append_printf().

Добавляет форматированную строку в конец GString. Эта функция подобна g_string_sprintf(), за исключением того, что текст добавляется к GString.


g_string_printf ()

void g_string_printf (GString *string, const gchar *format, ...);

Записывает форматированную строку в GString. Это подобно стандартной функции sprintf(), за исключением того, что буфер GString автоматически расширяется для вмещения результата. Предыдущее содержимое GString уничтожается.

string : GString.
format : строка формата. Смотрите документацию printf().
... : параметры вставляемые в форматируемую строку.

g_string_append_printf ()

void g_string_append_printf (GString *string, const gchar *format, ...);

Добавляет форматированную строку в конец GString. Эта функция подобна g_string_printf(), за исключением того, что текст добавляется к GString.

string : GString.
format : строка формата. Смотрите документацию printf().
... : параметры вставляемые в форматируемую строку.

g_string_append ()

GString* g_string_append (GString *string, const gchar *val);

Добавляет строку в конец GString, расширяя её если необходимо.

string : GString.
val : строка добавляемая в конец GString.
Возвращает : GString.

g_string_append_c ()

GString* g_string_append_c (GString *string, gchar c);

Добавляет бай в конец GString, расширяя её если необходимо.

string : GString.
c : байт для добавления в конец GString.
Возвращает : GString.

g_string_append_unichar ()

GString* g_string_append_unichar (GString *string, gunichar wc);

Конвертирует Unicode символ в UTF-8, и добавляет его в строку.

string : GString
wc : Unicode символ
Возвращает : string

g_string_append_len ()

GString* g_string_append_len (GString *string, const gchar *val, gssize len);

Добавляет len байт val в string. Поскольку len обеспечена, val может содержать встроенные nuls и не должна быть nul-завершённой.

string : GString.
val : байты для добавления.
len : количество байт val для использования.
Возвращает : GString.

g_string_prepend ()

GString* g_string_prepend (GString *string, const gchar *val);

Добавляет строку в начало GString, расширяя её если необходимо.

string : GString.
val : строка для добавления в начало GString.
Возвращает : GString.

g_string_prepend_c ()

GString* g_string_prepend_c (GString *string, gchar c);

Добавляет байт в начало GString, расширяя её если необходимо.

string : GString.
c : байт добавляемый в начало GString.
Возвращает : GString.

g_string_prepend_unichar ()

GString* g_string_prepend_unichar (GString *string, gunichar wc);

Конвертирует Unicode символ в UTF-8, и добавляет его в начало строки.

string : GString.
wc : Unicode символ.
Возвращает : string.

g_string_prepend_len ()

GString* g_string_prepend_len (GString *string, const gchar *val, gssize len);

Добавляет len байт val в string. Поскольку len обеспечена, val может содержать встроенные nuls и не должна быть nul-завершённой.

string : GString.
val : байты для вставки в начало.
len : количество байт в val для вставки.
Возвращает : GString в которую помещён байт.

g_string_insert ()

GString* g_string_insert (GString *string, gssize pos, const gchar *val);

Вставляет копию строки в GString, расширяя её если необходимо.

string : GString.
pos : позиция вставляемой копии строки.
val : вставляемая строка.
Возвращает : GString.

g_string_insert_c ()

GString* g_string_insert_c (GString *string, gssize pos, gchar c);

Вставляет байт в GString, расширяя её если необходимо.

string : GString.
pos : позиция вставляемого байта.
c : вставляемый байт.
Возвращает : GString.

g_string_insert_unichar ()

GString* g_string_insert_unichar (GString *string, gssize pos, gunichar wc);

Конвертирует Unicode символ в UTF-8, и вставляет его в строку в указанную позицию.

string : GString
pos : позиция в которую вставляется символ, или -1 для добавления в конец строки.
wc : Unicode символ
Возвращает : string

g_string_insert_len ()

GString* g_string_insert_len (GString *string, gssize pos, const gchar *val, gssize len);

Вставляет len байт val в string в позицию pos. Поскольку len обеспечена, val может содержать встроенные nuls и не должна быть nul-завершённой. Если pos это -1, байты вставляются в конец строки.

string : GString.
pos : позиция в string куда происходит вставка, или -1 если в конец.
val : вставляемые байты.
len : количество байт val для вставки.
Возвращает : GString.

g_string_erase ()

GString* g_string_erase (GString *string, gssize pos, gssize len);

Удаляет len байт из GString, сначала позиции pos. Остальная часть GString смещается вниз для заполнения пустоты.

string : GString.
pos : позоция контекста для удаления.
len : количество байт для удаления, или -1 для удаления всех последующих байт.
Возвращает : GString.

g_string_truncate ()

GString* g_string_truncate (GString *string, gsize len);

Вырезает окончание GString, оставляя первые len байт.

string : GString.
len : новый размер GString.
Возвращает : GString.

g_string_set_size ()

GString* g_string_set_size (GString *string, gsize len);

Устанавливает длину GString. Если длина меньше чем текущая, строка будет обрезана. Если длина больше чем текущая, содержимое вновь добавленного пространства неопределено. (Однако, как всегда, string->str[string->len] будет nul байтом.)

string : GString
len : новая длина
Возвращает : string

g_string_free ()

gchar* g_string_free (GString *string, gboolean free_segment);

Освобождает память распределённую для GString. Если free_segment это TRUE она так же освобождает символьные данные.

string : GString.
free_segment : если TRUE фактические символьные данные так же освобождаются.
Возвращает : символьные данные string (например NULL если free_segment это TRUE)

g_string_up ()

GString* g_string_up (GString *string);

Внимание

g_string_up устарела начиная с версии 2.2 и не должна использоваться во вновь создаваемом коде. Эта функция использует locale-специфичную функцию toupper(), которая почти никогда не является правильным выбором. Используйте g_string_ascii_up() или g_utf8_strup() вместо неё.

Конвертирует GString в верхний регистр.

string : GString
Возвращает : GString

g_string_down ()

GString* g_string_down (GString *string);

Внимание

g_string_down устарела начиная с версии 2.2 и не должна использоваться во вновь создаваемом коде. Эта функция использует locale-специфичную функцию tolower(), которая почти никогда не является правильным выбором. Используйте g_string_ascii_down() или g_utf8_strdown() вместо неё.

Конвертирует GString в нижний регистр.

string : GString
Возвращает : GString.

g_string_hash ()

guint g_string_hash (const GString *str);

Создаёт новый хеш код для str; для использования с GHashTable.

str : строка для хеширования.
Возвращает : хеш код для str.

g_string_equal ()

gboolean g_string_equal (const GString *v, const GString *v2);

Сравнивает две строки на эквивалентность, возвращает TRUE если они равны. Для использования с GHashTable.

v : GString.
v2 : другая GString.
Возвращает : TRUE если эти строки одинаковой длины и содержат одинаковые байты.