Table of Contents
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
vtype_string
include/string.h
Базовый блок
-
void string_init(vtype_string* x, const char* value)
- Принимает указатель на область памяти, содержащую инициализируемую строку
x
. - Принимает указатель на C-строку, которая будет установлена в качестве значения
x
. Если вместо указателя передан NULL, строка будет инициализированна пустым значением. - Инициализирует строку, позволяя использовать его в дальнейшей логике приложения.
- Принимает указатель на область памяти, содержащую инициализируемую строку
-
char* string_at(const vtype_string* s, ssize_t index)
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
x
. - Принимает значение индекса юникод символа
index
, указатель на который следует вернуть. Отрицательные значения индекса указывают на символы, начианая с последнего (где индекс -1 указывает на последний символ строки). Если отрицательное значение индекса по модулю превышает количество юникод символов в строке, то будет считаться, что запрос сделан с индексом равным нулю. - Возвращает указатель на запрошенный символ, либо NULL, если индекс превышает количество юникод символов в строке.
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
-
bool string_slice(vtype_string* x, vtype_string* src, ssize_t index, size_t nchars, bool cut)
- Принимает указатель на область памяти, содержащую инициализируемую строку
x
. - Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
src
. - Принимает значение индекса юникод символа
index
, начиная с которого, требуется начать "срез" строки. Отрицательные значения индекса указывают на символы, начианая с последнего (где индекс -1 указывает на последний символ строки). Если отрицательное значение индекса по модулю превышает количество юникод символов в строке, то будет считаться, что запрос сделан с индексом равным нулю. - Принимает значение количества юникод символов
count
, которыми необходимо инициализироватьx
в рамках "среза" данныхsrc
, начиная сindex
. В случае, если количество элементов, начиная сindex
меньшеcount
, вместоcount
будет использовано количество оставшихся юникод символов. - Принимает булевое значение
cut
, сообщающее о необходимости вырезать полученный "срез" данных изsrc
. - Возвращает итоговое количество элементов, вошедших в "срез".
- Принимает указатель на область памяти, содержащую инициализируемую строку
Макросы
-
ssize_t string_indexof(const vtype_string* s, T arg)
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
s
. - Принимает значение char/char16_t/char32_t, указатель на C-строку или указатель на область памяти, содержащую vtype_string, в качестве значения, которое нужно найти в строке.
- Возвращает индекс, указывающий на начальный символ первого найденного отрезка, равного
arg
.
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
-
size_t string_count(const vtype_string* s, T arg)
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
s
. - Принимает значение char/char16_t/char32_t, указатель на C-строку или указатель на область памяти, содержащую vtype_string, в качестве значения, которое нужно найти в строке.
- Возвращает количество найденных соответствий с
arg
в строке.
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
-
bool string_concat(vtype_string* x, T value)
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
x
. - Принимает значение char/char16_t/char32_t, указатель на C-строку или указатель на область памяти, содержащую vtype_string, в качестве значения, которое необходимо добавить к строке
x
. - Добавляет значение
arg
в конец строкиx
.
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
-
void string_trim_spaces(vtype_string* x)
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
x
. - Удаляет пробельные символы в начале и конце строки.
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
-
void string_ltrim_spaces(vtype_string* x)
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
x
. - Удаляет пробельные символы в начале строки.
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
-
void string_rtrim_spaces(vtype_string* x)
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
x
. - Удаляет пробельные символы в конце строки.
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
-
size_t string_replace(vtype_string* x, T src, T dest, size_t maxn)
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
x
. - Принимает значение char/char16_t/char32_t, указатель на C-строку или указатель на область памяти, содержащую vtype_string, в качестве значения, которое будет заменено.
- Принимает значение char/char16_t/char32_t, указатель на C-строку или указатель на область памяти, содержащую vtype_string, в качестве значения, на которое будет произведена замена.
- Принимает значение
maxn
, которое устанавливает лимит замен. - Производит не более
maxn
замен значений, равныхsrc
в строкеx
, на значения равныеdest
. - Возвращает количество произведенных замен.
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
include/extra/string.h
Макросы
-
vtype_array string_split(const vtype_string* s, T sep, size_t maxn)
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
x
. - Принимает значение char/char16_t/char32_t, указатель на C-строку или указатель на область памяти, содержащую vtype_string, в качестве значения, по которому будет производиться деление строки на части.
- Принимает значение
maxn
, которое устанавливает лимит разделений строки. - Производит не более
maxn
разделений строкиs
на блоки, сsep
в качестве основания для разделения. - Возвращает инициализированное значение vtype_array, содержащее результат запрошенного разделения.
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
-
int string_case_compare(const vtype_string* s0, const vtype_string* s1)
- Принимает два указателя на области памяти, содержащие инициализированные значения vtype_string.
- Производит сравнение строк без учета регистра (с поддержкой юникод-символов)
- Возвращает 0 если значения контейнеров равны, значения < 0 и > 0, если значения s0 меньше или больше значений s1 соответственно.
-
size_t string_replace_r(vtype_string* x, T src, T dest, size_t maxn)
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
x
. - Принимает значение char/char16_t/char32_t,
restrict
указатель на C-строку илиrestrict
указатель на область памяти, содержащую vtype_string, в качестве значения, которое будет заменено. - Принимает значение char/char16_t/char32_t,
restrict
указатель на C-строку илиrestrict
указатель на область памяти, содержащую vtype_string, в качестве значения, на которое будет произведена замена. - Принимает значение
maxn
, которое устанавливает лимит замен. - Производит не более
maxn
замен значений, равныхsrc
в строкеx
, на значения равныеdest
. В отличии отsize_t string_replace(vtype_string* x, T src, T dest, size_t maxn)
не производит проверку на то, что указатели src и dest указывают на один и тот же блок памяти, так как программист дает гарантию непересечение оных. - Возвращает количество произведенных замен.
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
-
void string_trim(vtype_string* x, T arg)
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
x
. - Принимает значение char/char16_t/char32_t, указатель на C-строку или указатель на область памяти, содержащую vtype_string, содержащее юникод символы, которые будут отсечены от строки.
- Удаляет юникод символы, содержащиеся в
arg
, в начале и конце строкиx
.
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
-
void string_ltrim(vtype_string* x, T arg)
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
x
. - Принимает значение char/char16_t/char32_t, указатель на C-строку или указатель на область памяти, содержащую vtype_string, содержащее юникод символы, которые будут отсечены от строки.
- Удаляет юникод символы, содержащиеся в
arg
, в начале строкиx
.
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
-
void string_rtrim(vtype_string* x, T arg)
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
x
. - Принимает значение char/char16_t/char32_t, указатель на C-строку или указатель на область памяти, содержащую vtype_string, содержащее юникод символы, которые будут отсечены от строки.
- Удаляет юникод символы, содержащиеся в
arg
, в конце строкиx
.
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
Дополнительный блок
-
size_t string_to_lower(vtype_string* x)
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
x
. - Переводит каждый юникод символ строки в нижний регистр.
- Возвращает количество юникод символов, переведенных в нижний регистр.
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
-
size_t string_to_upper(vtype_string* x)
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
x
. - Переводит каждый юникод символ строки в верхний регистр.
- Возвращает количество юникод символов, переведенных в верхний регистр.
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
-
size_t string_capitalize(vtype_string* x)
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
x
. - Переводит первый юникод символ строки в верхний регистр, а остальные - в нижний.
- Возвращает количество юникод символов, у которых был изменен регистр.
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
-
size_t string_reverse(vtype_string* x)
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
x
. - Переворачивает строку.
- Возвращает количество юникод символов в строке.
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
-
size_t string_align_center(vtype_string* x, size_t padsize, int padchr)
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
x
. - Принимает значение
padsize
, устанавливающее размер области (в количестве юникод символов), в рамках которой будет производиться выравнивание. - Принимает значение char/char16_t/char32_t, устанавливающее символ, которым будет дополняться строка. Если задан некорректный юникод символ или использовано значение 0, будет использован обычный пробел.
- Производит центрирование значение строки
x
, в области, с размеромpadsize
, дополняя значение строкиx
символомpadchr
слева и справа. - Вовзращает итоговое количество юникод символов в строке.
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
-
size_t string_align_right(vtype_string* x, size_t padsize, int padchr)
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
x
. - Принимает значение
padsize
, устанавливающее размер области (в количестве юникод символов), в рамках которой будет производиться выравнивание. - Принимает значение char/char16_t/char32_t, устанавливающее символ, которым будет дополняться строка. Если задан некорректный юникод символ или использовано значение 0, будет использован обычный пробел.
- Производит дополнение строки
x
символамиpadchr
слева, до размераpadsize
- Вовзращает итоговое количество юникод символов в строке.
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
-
size_t string_align_left(vtype_string* x, size_t padsize, int padchr)
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
x
. - Принимает значение
padsize
, устанавливающее размер области (в количестве юникод символов), в рамках которой будет производиться выравнивание. - Принимает значение char/char16_t/char32_t, устанавливающее символ, которым будет дополняться строка. Если задан некорректный юникод символ или использовано значение 0, будет использован обычный пробел.
- Производит дополнение строки
x
символамиpadchr
справа, до размераpadsize
- Вовзращает итоговое количество юникод символов в строке.
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
-
void libcdsb_string_replace(vtype_string* x, char* dest, size_t dest_nmemb, const char* src, size_t nmemb)
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string
x
. - Принимает указатель
dest
на любой символ из области выделенной памяти в x->buffer - Принимает размер заменяемой области памяти
dest_nmemb
- Принимает указатель на последовательность символов, на которые будет производится замена
dest
- Принимает размер заменяющей последовательности символов
nmemb
- Производит замену
dest
с размеромdest_nmemb
наsrc
с размеромnmemb
. Значениеdest
должно принадлежать выделенной памятиx->buffer
, а выражениеdest + dest_nmemb
не должно указывать за пределы выделенной памяти. Подобную гарантию дает программист.
- Принимает указатель на область памяти, содержащую инициализированное значение vtype_string