--- title: "string.h" summary: "basic functions for string manipulation" --- #### `string_t` - typedef A null-terminated array of chars. #### `string_length(string)` - function (uint32_t) Returns the amount of chars a string has before it's null-terminator. #### `string_compare(a, b)` - function (bool) Returns **true** when the strings **_a_** and **_b_** are equal. Returns **false** if they aren't equal. #### `string_find_next(string, chr)` - function (uint32_t) Returns the index of the next character that matches **_chr_** in **_string_**. #### `string_find_last(string, chr)` - function (uint32_t) Returns the index of the last character that matches **_chr_** in **_string_**. #### `variadic_format_size(string, args)` - function (uint64_t) Returns how long a format string with the given pattern (**_string_**) and **_args_** would be. Useful to create a big enough buffer before formatting a string. #### `format_size(string, ...)` - function (uint64_t) This calls `variadic_format_size`, but instead of giving it a `va_list` you can give this function the actual arguments. #### `variadic_format(output, string, args)` - function (void) Formats **_string_** with **_args_** and writes the product to **_output_**. The rules for format strings are specified on top of this document in the _General concepts_ block. #### `format(output, string, ...)` - function (void) This calls `variadic_format`, but instead of giving it a `va_list` you can give this function the actual arguments. #### `string_unsigned_dec_to_alpha(string, value)` - function (void) Converts the unsigned integer in **_value_** to an alphanumeric string. The representation is decimal. This string will be written into **_string_**. #### `string_dec_to_alpha(string, value)` - function (void) Converts the signed integer in **_value_** to an alphanumeric string. If it is negative it will be prefixed with a hyphen. The representation is decimal. This string will be written into **_string_**. #### `string_hex_8bit_to_alpha(string, value)` - function (void) Converts the byte in **_value_** to an alphanumeric string. The representation is hexadecimal. This string will be written into **_string_**. #### `string_hex_16bit_to_alpha(string, value)` - function (void) Converts the word(16-bits) in **_value_** to an alphanumeric string. The representation is hexadecimal. This string will be written into **_string_**. #### `string_hex_32bit_to_alpha(string, value)` - function (void) Converts the dword(32-bits) in **_value_** to an alphanumeric string. The representation is hexadecimal. This string will be written into **_string_**. #### `string_hex_64bit_to_alpha(string, value)` - function (void) Converts the qword(64-bits) in **_value_** to an alphanumeric string. The representation is hexadecimal. This string will be written into **_string_**. #### `string_bin_to_alpha(string, num_bits, value)` - function (void) Converts the data in **_value_** to an alphanumeric string. The representation is binary. **_num_bits_** specifies how many bits, starting at the least significant bit, will be converted. This string will be written into **_string_**. #### `string_bool_to_alpha(string, value`) - function (void) Converts the boolean in **_value_** to an alphanumeric string. The representation is `true` or `false`. This string will be written into **_string_**. #### `string_is_char_text(chr)` - function (bool) Returns whether the char (**_chr_**) contains text(a-z, A-Z, 0-9, special chars) or not. #### `string_is_char_number(chr)` - function (bool) Returns whether the char (**_chr_**) is a number(0-9) or not. #### `string_is_char_alpha(chr)` - function (bool) Returns whether the char (**_chr_**) is alphanumeric(a-z, A-Z, 0-9) or not. #### `string_is_char_uppercase(chr)` - function (bool) Returns whether the char (**_chr_**) is uppercase(A-Z) or not. #### `string_is_char_lowercase(chr)` - function (bool) Returns whether the char (**_chr_**) is lowercase(a-z) or not.