simstr 1.2.4
Yet another strings library
 
Loading...
Searching...
No Matches
simstr::simple_str_nt< K > Struct Template Reference

A class that claims to refer to a null-terminated string. More...

#include <sstring.h>

Inheritance diagram for simstr::simple_str_nt< K >:
simstr::simple_str< K > simstr::str_algs< K, simple_str< K >, simple_str< K >, false >

Public Member Functions

template<typename T>
requires std::is_same_v<std::remove_const_t<std::remove_pointer_t<std::remove_cvref_t<T>>>, K>
 simple_str_nt (T &&p) noexcept
 Explicit constructor from C-string.
 
template<typename S>
requires (std::is_same_v<S, std::string&> || std::is_same_v<S, const std::string&> || std::is_same_v<S, std::string_view&> || std::is_same_v<S, const std::string_view&>)
constexpr simple_str_nt (S &&s) noexcept
 Constructor that allows you to initialize std::string and std::string_view objects provided that they are lvalue, that is, not temporary.
 
 operator const K * () const noexcept
 Conversion operator to a null-terminated C string.
 
my_type to_nts (size_t from)
 Get a null-terminated string by shifting the start by the specified number of characters.
 
constexpr size_t length () const noexcept
 Get the length of the string.
 
constexpr const symb_type * symbols () const noexcept
 Get a pointer to a constant buffer containing string characters.
 
constexpr bool is_empty () const noexcept
 Check if a string is empty.
 
bool is_same (simple_str< K > other) const noexcept
 Check if two objects point to the same string.
 
bool is_part_of (simple_str< K > other) const noexcept
 Check if a string is part of another string.
 
operator[] (size_t idx) const
 Get the character from the specified position. Bounds checking is not performed.
 
my_typeremove_prefix (size_t delta)
 Shifts the start of a line by the specified number of characters.
 
my_typeremove_suffix (size_t delta)
 Shortens the string by the specified number of characters.
 
constexpr K * place (K *ptr) const noexcept
 Copy the string to the specified buffer.
 
void copy_to (K *buffer, size_t bufSize)
 Copy the string to the specified buffer.
 
size_t size () const
 The size of the string in characters.
 
constexpr operator str_piece () const noexcept
 Convert itself to a "string chunk" that includes the entire string.
 
str_piece to_str () const noexcept
 Convert itself to a "string chunk" that includes the entire string.
 
std::basic_string_view< K > to_sv () const noexcept
 Convert to std::string_view.
 
std::basic_string< K > to_string () const noexcept
 Convert to std::string.
 
constexpr str_piece operator() (ptrdiff_t from, ptrdiff_t len=0) const noexcept
 Get part of a string as "simple_str".
 
constexpr str_piece mid (size_t from, size_t len=-1) const noexcept
 Get part of a string as "string chunk".
 
constexpr str_piece from_to (size_t from, size_t to) const noexcept
 Get the substring simple_str from position from to position to (not including it).
 
bool operator! () const noexcept
 Check for emptiness.
 
at (ptrdiff_t idx) const
 Get the character at the given position.
 
constexpr int compare (str_piece o) const
 Compare strings character by character.
 
constexpr int strcmp (const K *text) const
 Compare with C-string character by character.
 
constexpr bool equal (str_piece other) const noexcept
 String comparison for equality.
 
constexpr bool operator== (const base &other) const noexcept
 Operator comparing strings for equality.
 
bool operator== (T &&other) const noexcept
 Operator for comparing a string and a string literal for equality.
 
constexpr auto operator<=> (const base &other) const noexcept
 String comparison operator.
 
auto operator<=> (T &&other) const noexcept
 Comparison operator between a string and a string literal.
 
int compare_ia (str_piece text) const noexcept
 Compare strings character by character and not case sensitive ASCII characters.
 
bool equal_ia (str_piece text) const noexcept
 Whether a string is equal to another string, character-by-character-insensitive, of ASCII characters.
 
bool less_ia (str_piece text) const noexcept
 Whether a string is smaller than another string, character-by-character-insensitive, ASCII characters.
 
int compare_iu (str_piece text) const noexcept
 Compare strings character by character without taking into account the case of Unicode characters of the first plane (<0xFFFF).
 
bool equal_iu (str_piece text) const noexcept
 Whether a string is equal to another string, character-by-character-insensitive, of the Unicode characters of the first plane (<0xFFFF).
 
bool less_iu (str_piece text) const noexcept
 Whether a string is smaller than another string, character-by-character-insensitive, of the Unicode characters of the first plane (<0xFFFF).
 
size_t find (str_piece pattern, size_t offset=0) const noexcept
 Find the beginning of the first occurrence of a substring in this string.
 
size_t find (K s, size_t offset=0) const noexcept
 Find a character in this string.
 
size_t find_or_throw (str_piece pattern, size_t offset=0, Args &&... args) const noexcept
 Find the beginning of the first occurrence of a substring in this string or throw an exception.
 
size_t find_end (str_piece pattern, size_t offset=0) const noexcept
 Find the end of the occurrence of a substring in this string.
 
size_t find_or_all (str_piece pattern, size_t offset=0) const noexcept
 Find the beginning of the first occurrence of a substring in this string or the end of the string.
 
size_t find_or_all (K s, size_t offset=0) const noexcept
 Find a character in this string or the end of a string.
 
size_t find_end_or_all (str_piece pattern, size_t offset=0) const noexcept
 Find the end of the first occurrence of a substring in this string, or the end of a string.
 
size_t find_last (str_piece pattern, size_t offset=-1) const noexcept
 Find the beginning of the last occurrence of a substring in this string.
 
size_t find_last (K s, size_t offset=-1) const noexcept
 Find the last occurrence of a character in this string.
 
size_t find_end_of_last (str_piece pattern, size_t offset=-1) const noexcept
 Find the end of the last occurrence of a substring in this string.
 
size_t find_last_or_all (str_piece pattern, size_t offset=-1) const noexcept
 Find the beginning of the last occurrence of a substring in this string or the end of the string.
 
size_t find_end_of_last_or_all (str_piece pattern, size_t offset=-1) const noexcept
 Find the end of the last occurrence of a substring in this string, or the end of a string.
 
bool contains (str_piece pattern, size_t offset=0) const noexcept
 Whether the string contains the specified substring.
 
void for_all_finded (const Op &op, str_piece pattern, size_t offset=0, size_t maxCount=0) const
 Call a functor on all found occurrences of a substring in this string.
 
std::vector< size_t > find_all (str_piece pattern, size_t offset=0, size_t maxCount=0) const
 Find all occurrences of a substring in this string.
 
size_t find_first_of (str_piece pattern, size_t offset=0) const noexcept
 Find the first occurrence of a character from a given character set.
 
std::pair< size_t, size_t > find_first_of_idx (str_piece pattern, size_t offset=0) const noexcept
 Find the first occurrence of a character from a given character set.
 
size_t find_first_not_of (str_piece pattern, size_t offset=0) const noexcept
 Find the first occurrence of a character not from the given character set.
 
size_t find_last_of (str_piece pattern, size_t offset=str::npos) const noexcept
 Find the last occurrence of a character from a given character set.
 
std::pair< size_t, size_t > find_last_of_idx (str_piece pattern, size_t offset=str::npos) const noexcept
 Find the last occurrence of a character from a given character set.
 
size_t find_last_not_of (str_piece pattern, size_t offset=str::npos) const noexcept
 Find the last occurrence of a character not from the given character set.
 
my_type substr (ptrdiff_t from, ptrdiff_t len=0) const
 Get a substring. Works similarly to operator(), only the result is the same type as the method applied to.
 
my_type str_mid (size_t from, size_t len=-1) const
 Get part of a string with an object of the same type to which the method is applied, similar to mid.
 
as_int () const noexcept
 Convert a string to a number of the given type.
 
convert_result< T > to_int () const noexcept
 Convert a string to a number of the given type.
 
std::optional< double > to_double () const noexcept
 Convert string to double.
 
std::optional< double > to_double_hex () const noexcept
 Convert string in hex form to double.
 
void as_number (T &t) const
 Convert a string to an integer.
 
void as_number (double &t) const
 Convert string to double.
 
splitf (str_piece delimeter, const Op &beforeFunc, size_t offset=0) const
 Split a string into parts at a given delimiter, possibly applying a functor to each substring.
 
split (str_piece delimeter, size_t offset=0) const
 Split a string into substrings using a given delimiter.
 
Splitter< K > splitter (str_piece delimeter) const
 Retrieve a Splitter object by the given splitter, which allows sequential get substrings using the next() method while is_done() is false.
 
constexpr bool starts_with (str_piece prefix) const noexcept
 Whether the string begins with the given substring.
 
constexpr bool starts_with_ia (str_piece prefix) const noexcept
 Whether the string begins with the given substring in a case-insensitive ASCII character.
 
bool starts_with_iu (str_piece prefix) const noexcept
 Whether the string starts with the given substring, case-insensitive Unicode characters of the first plane (<0xFFFF).
 
constexpr bool prefix_in (str_piece text) const noexcept
 Whether this string is the beginning of another string.
 
constexpr bool ends_with (str_piece suffix) const noexcept
 Whether the string ends with the specified substring.
 
constexpr bool ends_with_ia (str_piece suffix) const noexcept
 Whether the string ends with the specified substring in a case-insensitive ASCII character.
 
constexpr bool ends_with_iu (str_piece suffix) const noexcept
 Whether the string ends with the specified substring, case-insensitive Unicode characters of the first plane (<0xFFFF).
 
bool is_ascii () const noexcept
 Whether the string contains only ASCII characters.
 
uppered_only_ascii () const
 Get a copy of the string in uppercase ASCII characters.
 
lowered_only_ascii () const
 Get a copy of the string in lowercase ASCII characters.
 
uppered () const
 Get a copy of the string in upper case Unicode characters of the first plane (<0xFFFF).
 
lowered () const
 Get a copy of the string in lowercase Unicode characters of the first plane (<0xFFFF).
 
replaced (str_piece pattern, str_piece repl, size_t offset=0, size_t maxCount=0) const
 Get a copy of the string with occurrences of substrings replaced.
 
expr_replaces< K, N - 1, L - 1 > replace_init (T &&pattern, M &&repl) const
 Get a string expression that produces a string with replaced substrings given by string literals.
 
trimmed () const
 Get a string with whitespace removed on the left and right.
 
trimmed (T &&pattern) const
 Get a string with the characters specified by the string literal removed from the left and right.
 
trimmed (str_piece pattern) const
 Get a string with characters specified by another string removed, left and right.
 
trimmed_left () const
 Get a string with whitespace removed on the left.
 
trimmed_left (T &&pattern) const
 Get a string with the characters specified by the string literal removed from the left.
 
trimmed_left (str_piece pattern) const
 Get a string with characters specified by another string removed from the left.
 
trimmed_right () const
 Get a string with whitespace removed on the right.
 
trimmed_right (T &&pattern) const
 Get a string with the characters specified by the string literal removed from the right.
 
trimmed_right (str_piece pattern) const
 Get a string with characters specified by another string removed to the right.
 
trimmed_with_spaces (T &&pattern) const
 Get a string with the characters specified by the string literal removed, as well as whitespace characters, left and right.
 
trimmed_with_spaces (str_piece pattern) const
 Get a string, removing characters specified by another string, as well as whitespace characters, left and right.
 
trimmed_left_with_spaces (T &&pattern) const
 Get a string with the characters specified by the string literal removed, as well as whitespace characters, left.
 
trimmed_left_with_spaces (str_piece pattern) const
 Get a string, removing characters specified by another string, as well as whitespace characters, left.
 
trimmed_right_with_spaces (T &&pattern) const
 Get a string with the characters specified by the string literal removed, as well as whitespace characters, right.
 
trimmed_right_with_spaces (str_piece pattern) const
 Get a string, removing characters specified by another string, as well as whitespace characters, right.
 

Detailed Description

template<typename K>
struct simstr::simple_str_nt< K >

A class that claims to refer to a null-terminated string.

Template Parameters
K- the character type of the string.

Shows what the function wants to receive as a parameter a string with a zero at the end, for example, she needs to further transfer it to third party API. Without this, she would have to either specify the parameter specific string class, which deprives universality, or would lead to the constant overhead of unnecessary copying of string into the temporary buffer. Null-terminated strings can be sourced from string literals during compilation, or classes that store strings.

Constructor & Destructor Documentation

◆ simple_str_nt()

template<typename K>
template<typename T>
requires std::is_same_v<std::remove_const_t<std::remove_pointer_t<std::remove_cvref_t<T>>>, K>
simstr::simple_str_nt< K >::simple_str_nt ( T && p)
inlineexplicitnoexcept

Explicit constructor from C-string.

Parameters
p- pointer to a C-string (null-terminated string).

This is the only constructor of all string objects that accepts a C-string. Calculates its length upon initialization. All other string objects are not initialized C-strings. This is to ensure that strlen is called only in one place in the library, the length of the C-string was calculated only once and was not subsequently lost accidentally when transferred between different types of string objects.

Member Function Documentation

◆ as_int()

T simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::as_int ( ) const
inlinenoexceptinherited

Convert a string to a number of the given type.

Template Parameters
T- the desired number type.
CheckOverflow- check for overflow.
Base- the base of the number, from -1 to 36, except 1.
  • If 0: then tries to determine the base by the prefix 0[xX] as 16, 0 as 8, otherwise 10.
  • If -1: then tries to determine the base by prefixes:
    • 0 or 0[oO]: 8
    • 0[bB]: 2
    • 0[xX]: 16
  • in other cases 10.
SkipWs- skip whitespace characters at the beginning of the line.
AllowSign- whether the '+' sign is allowed before a number.
Returns
T - a number, the result of the transformation, how much it turned out, or 0 if it overflows.

◆ as_number() [1/2]

void simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::as_number ( double & t) const
inlineinherited

Convert string to double.

Parameters
t- the variable into which the result is written.

◆ as_number() [2/2]

void simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::as_number ( T & t) const
inlineinherited

Convert a string to an integer.

Template Parameters
T- number type, inferred from the argument.
Parameters
t- the variable into which the result is written.

◆ at()

K simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::at ( ptrdiff_t idx) const
inlineinherited

Get the character at the given position.

Parameters
idx- symbol index. For negative values, it is counted from the end of the line.
Returns
K - character.

Does not check for line boundaries.

◆ compare()

int simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::compare ( str_piece o) const
inlineconstexprinherited

Compare strings character by character.

Parameters
o- another line.
Returns
<0 this string is less, ==0 - strings are equal, >0 - this string is greater.

◆ compare_ia()

int simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::compare_ia ( str_piece text) const
inlinenoexceptinherited

Compare strings character by character and not case sensitive ASCII characters.

Parameters
text- another line.
Returns
<0 this string is less, ==0 - strings are equal, >0 - this string is greater.

◆ compare_iu()

int simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::compare_iu ( str_piece text) const
inlinenoexceptinherited

Compare strings character by character without taking into account the case of Unicode characters of the first plane (<0xFFFF).

Parameters
text- another line.
Returns
<0 this string is less, ==0 - strings are equal, >0 - this string is greater.

◆ contains()

bool simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::contains ( str_piece pattern,
size_t offset = 0 ) const
inlinenoexceptinherited

Whether the string contains the specified substring.

Parameters
pattern- the search string.
offset- from which position to start the search.
Returns
bool.

◆ copy_to()

void simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::copy_to ( K * buffer,
size_t bufSize )
inlineinherited

Copy the string to the specified buffer.

The method adds \0 after the copied characters. Does not exceed buffer boundaries.

Parameters
buffer- pointer to buffer
bufSize- buffer size in characters.

◆ ends_with()

bool simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::ends_with ( str_piece suffix) const
inlineconstexprnoexceptinherited

Whether the string ends with the specified substring.

Parameters
suffix- substring.

◆ ends_with_ia()

bool simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::ends_with_ia ( str_piece suffix) const
inlineconstexprnoexceptinherited

Whether the string ends with the specified substring in a case-insensitive ASCII character.

Parameters
suffix- substring.

◆ ends_with_iu()

bool simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::ends_with_iu ( str_piece suffix) const
inlineconstexprnoexceptinherited

Whether the string ends with the specified substring, case-insensitive Unicode characters of the first plane (<0xFFFF).

Parameters
suffix- substring.

◆ equal()

bool simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::equal ( str_piece other) const
inlineconstexprnoexceptinherited

String comparison for equality.

Parameters
other- another line.
Returns
whether the strings are equal.

◆ equal_ia()

bool simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::equal_ia ( str_piece text) const
inlinenoexceptinherited

Whether a string is equal to another string, character-by-character-insensitive, of ASCII characters.

Parameters
text- another line.
Returns
whether the strings are equal.

◆ equal_iu()

bool simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::equal_iu ( str_piece text) const
inlinenoexceptinherited

Whether a string is equal to another string, character-by-character-insensitive, of the Unicode characters of the first plane (<0xFFFF).

Parameters
text- another line.
Returns
whether the strings are equal.

◆ find() [1/2]

size_t simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::find ( K s,
size_t offset = 0 ) const
inlinenoexceptinherited

Find a character in this string.

Parameters
sis an optional character.
offset- from which position to start the search.
Returns
size_t - position of the found character, or -1 if not found.

◆ find() [2/2]

size_t simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::find ( str_piece pattern,
size_t offset = 0 ) const
inlinenoexceptinherited

Find the beginning of the first occurrence of a substring in this string.

Parameters
pattern- the search string.
offset- from which position to start the search.
Returns
size_t - the position of the beginning of the occurrence of the substring, or -1 if not found.

◆ find_all()

std::vector< size_t > simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::find_all ( str_piece pattern,
size_t offset = 0,
size_t maxCount = 0 ) const
inlineinherited

Find all occurrences of a substring in this string.

Parameters
pattern- the substring to search for.
offset- search start position.
maxCount- the maximum number of occurrences to be processed, 0 - no restrictions.
Returns
std::vector<size_t> - a vector with the positions of the beginnings of the found occurrences.

◆ find_end()

size_t simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::find_end ( str_piece pattern,
size_t offset = 0 ) const
inlinenoexceptinherited

Find the end of the occurrence of a substring in this string.

Parameters
pattern- the search string.
offset- from which position to start the search.
Returns
size_t - the position immediately after the occurrence of the substring, or -1 if not found.

◆ find_end_of_last()

size_t simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::find_end_of_last ( str_piece pattern,
size_t offset = -1 ) const
inlinenoexceptinherited

Find the end of the last occurrence of a substring in this string.

Parameters
pattern- the search string.
offset- from which position to search in the opposite direction, -1 - from the very end.
Returns
size_t - the position immediately after the last occurrence of the substring, or -1 if not found.

◆ find_end_of_last_or_all()

size_t simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::find_end_of_last_or_all ( str_piece pattern,
size_t offset = -1 ) const
inlinenoexceptinherited

Find the end of the last occurrence of a substring in this string, or the end of a string.

Parameters
pattern- the search string.
offset- from which position to search in the opposite direction, -1 - from the very end.
Returns
size_t - the position immediately after the last occurrence of the substring, or the length of the string if not found.

◆ find_end_or_all()

size_t simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::find_end_or_all ( str_piece pattern,
size_t offset = 0 ) const
inlinenoexceptinherited

Find the end of the first occurrence of a substring in this string, or the end of a string.

Parameters
pattern- the search string.
offset- from which position to start the search.
Returns
size_t - the position immediately after the occurrence of the substring, or the length of the string if not found.

◆ find_first_not_of()

size_t simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::find_first_not_of ( str_piece pattern,
size_t offset = 0 ) const
inlinenoexceptinherited

Find the first occurrence of a character not from the given character set.

Parameters
pattern- a string specifying the character set.
offset- search start position.
Returns
size_t - position of the found occurrence, or -1 if not found.

◆ find_first_of()

size_t simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::find_first_of ( str_piece pattern,
size_t offset = 0 ) const
inlinenoexceptinherited

Find the first occurrence of a character from a given character set.

Parameters
pattern- a string specifying the set of characters to search for.
offset- search start position.
Returns
size_t - position of the found occurrence, or -1 if not found.

◆ find_first_of_idx()

std::pair< size_t, size_t > simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::find_first_of_idx ( str_piece pattern,
size_t offset = 0 ) const
inlinenoexceptinherited

Find the first occurrence of a character from a given character set.

Parameters
pattern- a string specifying the set of characters to search for.
offset- search start position.
Returns
std::pair<size_t, size_t> - a pair from the position of the found occurrence and the number of the found character in the set, or -1 if not found.

◆ find_last() [1/2]

size_t simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::find_last ( K s,
size_t offset = -1 ) const
inlinenoexceptinherited

Find the last occurrence of a character in this string.

Parameters
sis an optional character.
offset- from which position to search in the opposite direction, -1 - from the very end.
Returns
size_t - position of the found character, or -1 if not found.

◆ find_last() [2/2]

size_t simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::find_last ( str_piece pattern,
size_t offset = -1 ) const
inlinenoexceptinherited

Find the beginning of the last occurrence of a substring in this string.

Parameters
pattern- the search string.
offset- from which position to search in the opposite direction, -1 - from the very end.
Returns
size_t - the position of the beginning of the occurrence of the substring, or -1 if not found.

◆ find_last_not_of()

size_t simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::find_last_not_of ( str_piece pattern,
size_t offset = str::npos ) const
inlinenoexceptinherited

Find the last occurrence of a character not from the given character set.

Parameters
pattern- a string specifying the character set.
offset- search start position.
Returns
size_t - position of the found occurrence, or -1 if not found.

◆ find_last_of()

size_t simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::find_last_of ( str_piece pattern,
size_t offset = str::npos ) const
inlinenoexceptinherited

Find the last occurrence of a character from a given character set.

Parameters
pattern- a string specifying the set of characters to search for.
offset- search start position.
Returns
size_t - position of the found occurrence, or -1 if not found.

◆ find_last_of_idx()

std::pair< size_t, size_t > simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::find_last_of_idx ( str_piece pattern,
size_t offset = str::npos ) const
inlinenoexceptinherited

Find the last occurrence of a character from a given character set.

Parameters
pattern- a string specifying the set of characters to search for.
offset- search start position.
Returns
std::pair<size_t, size_t> - a pair from the position of the found occurrence and the number of the found character in the set, or -1 if not found.

◆ find_last_or_all()

size_t simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::find_last_or_all ( str_piece pattern,
size_t offset = -1 ) const
inlinenoexceptinherited

Find the beginning of the last occurrence of a substring in this string or the end of the string.

Parameters
pattern- the search string.
offset- from which position to search in the opposite direction, -1 - from the very end.
Returns
size_t - the position at which the substring begins, or the length of the string if not found.

◆ find_or_all() [1/2]

size_t simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::find_or_all ( K s,
size_t offset = 0 ) const
inlinenoexceptinherited

Find a character in this string or the end of a string.

Parameters
sis an optional character.
offset- from which position to start the search.
Returns
size_t - position of the found character, or string length if not found.

◆ find_or_all() [2/2]

size_t simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::find_or_all ( str_piece pattern,
size_t offset = 0 ) const
inlinenoexceptinherited

Find the beginning of the first occurrence of a substring in this string or the end of the string.

Parameters
pattern- the search string.
offset- from which position to start the search.
Returns
size_t - the position at which the substring begins, or the length of the string if not found.

◆ find_or_throw()

size_t simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::find_or_throw ( str_piece pattern,
size_t offset = 0,
Args &&... args ) const
inlinenoexceptinherited

Find the beginning of the first occurrence of a substring in this string or throw an exception.

Template Parameters
Exc- exception type.
Args...- types of parameters for constructing an exception, inferred from the arguments.
Parameters
pattern- the search string.
offset- from which position to start the search.
args- arguments for the exception constructor.
Returns
size_t - the position of the beginning of the substring occurrence, or throws an Exc exception if not found.

◆ for_all_finded()

void simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::for_all_finded ( const Op & op,
str_piece pattern,
size_t offset = 0,
size_t maxCount = 0 ) const
inlineinherited

Call a functor on all found occurrences of a substring in this string.

Parameters
opis a functor that takes a string.
pattern- the substring to search for.
offset- search start position.
maxCount- the maximum number of occurrences to be processed, 0 - no restrictions.

◆ from_to()

str_piece simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::from_to ( size_t from,
size_t to ) const
inlineconstexprnoexceptinherited

Get the substring simple_str from position from to position to (not including it).

For performance reasons, the method does not check for line boundaries in any way, use in scenarios when you know for sure that these are positions inside the line and to >= from.

Parameters
from- starting position.
to- final position (not included in the result).
Returns
Substring, simple_str.

◆ is_part_of()

template<typename K>
bool simstr::simple_str< K >::is_part_of ( simple_str< K > other) const
inlinenoexceptinherited

Check if a string is part of another string.

Parameters
other- another string.

◆ is_same()

template<typename K>
bool simstr::simple_str< K >::is_same ( simple_str< K > other) const
inlinenoexceptinherited

Check if two objects point to the same string.

Parameters
other- another string.

◆ less_ia()

bool simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::less_ia ( str_piece text) const
inlinenoexceptinherited

Whether a string is smaller than another string, character-by-character-insensitive, ASCII characters.

Parameters
text- another line.
Returns
whether the string is smaller.

◆ less_iu()

bool simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::less_iu ( str_piece text) const
inlinenoexceptinherited

Whether a string is smaller than another string, character-by-character-insensitive, of the Unicode characters of the first plane (<0xFFFF).

Parameters
text- another line.
Returns
whether the string is smaller.

◆ lowered()

R simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::lowered ( ) const
inlineinherited

Get a copy of the string in lowercase Unicode characters of the first plane (<0xFFFF).

Template Parameters
R- the desired string type, by default the same whose method was called.
Returns
R - lowercase copy of the string.

◆ lowered_only_ascii()

R simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::lowered_only_ascii ( ) const
inlineinherited

Get a copy of the string in lowercase ASCII characters.

Template Parameters
R- the desired string type, by default the same whose method was called.
Returns
R - lowercase copy of the string.

◆ mid()

str_piece simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::mid ( size_t from,
size_t len = -1 ) const
inlineconstexprnoexceptinherited

Get part of a string as "string chunk".

Parameters
from- number of characters from the beginning of the line. If the string size is exceeded, it will return an empty string.
len- the number of characters in the resulting "chunk". When going beyond the line, it will return everything up to the end of the line.
Returns
Substring, simple_str.

◆ operator const K *()

template<typename K>
simstr::simple_str_nt< K >::operator const K * ( ) const
inlinenoexcept

Conversion operator to a null-terminated C string.

Returns
const K* - pointer to the beginning of the line.

◆ operator str_piece()

simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::operator str_piece ( ) const
inlineconstexprnoexceptinherited

Convert itself to a "string chunk" that includes the entire string.

Returns
str_piece.

◆ operator()()

str_piece simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::operator() ( ptrdiff_t from,
ptrdiff_t len = 0 ) const
inlineconstexprnoexceptinherited

Get part of a string as "simple_str".

Parameters
from- number of characters from the beginning of the line.
len- the number of characters in the resulting "chunk".
Returns
Substring, simple_str.

If from is less than zero, then -from characters are counted from the end of the line towards the beginning. If len is less than or equal to zero, then count -len characters from the end of the line

"0123456789"_ss(5, 2) == "56";
"0123456789"_ss(5) == "56789";
"0123456789"_ss(5, -1) == "5678";
"0123456789"_ss(-3) == "789";
"0123456789"_ss(-3, 2) == "78";
"0123456789"_ss(-4, -1) == "678";

◆ operator<=>() [1/2]

auto simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::operator<=> ( const base & other) const
inlineconstexprnoexceptinherited

String comparison operator.

Parameters
other- another line.

◆ operator<=>() [2/2]

auto simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::operator<=> ( T && other) const
inlinenoexceptinherited

Comparison operator between a string and a string literal.

Parameters
otheris a string literal.

◆ operator==() [1/2]

bool simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::operator== ( const base & other) const
inlineconstexprnoexceptinherited

Operator comparing strings for equality.

Parameters
other- another line.
Returns
whether the strings are equal.

◆ operator==() [2/2]

bool simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::operator== ( T && other) const
inlinenoexceptinherited

Operator for comparing a string and a string literal for equality.

Parameters
other- string literal.

◆ operator[]()

template<typename K>
K simstr::simple_str< K >::operator[] ( size_t idx) const
inlineinherited

Get the character from the specified position. Bounds checking is not performed.

Parameters
idx- position of the symbol.
Returns
K is a symbol.

◆ place()

K * simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::place ( K * ptr) const
inlineconstexprnoexceptinherited

Copy the string to the specified buffer.

The method assumes that the size of the allocated buffer is sufficient for the entire line, i.e. length() was previously requested. Does not add \0.

Parameters
ptr- pointer to the buffer.
Returns
pointer to the character after the end of the symbols placed in the buffer.

◆ prefix_in()

bool simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::prefix_in ( str_piece text) const
inlineconstexprnoexceptinherited

Whether this string is the beginning of another string.

Parameters
text- another string.

◆ remove_prefix()

template<typename K>
my_type & simstr::simple_str< K >::remove_prefix ( size_t delta)
inlineinherited

Shifts the start of a line by the specified number of characters.

Parameters
delta- number of characters.
Returns
my_type&.

◆ remove_suffix()

template<typename K>
my_type & simstr::simple_str< K >::remove_suffix ( size_t delta)
inlineinherited

Shortens the string by the specified number of characters.

Parameters
delta- number of characters.
Returns
my_type&.

◆ replace_init()

expr_replaces< K, N - 1, L - 1 > simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::replace_init ( T && pattern,
M && repl ) const
inlineinherited

Get a string expression that produces a string with replaced substrings given by string literals.

Parameters
pattern- string literal, substring to be changed.
repl- string literal, substring to change to.
Returns
a string expression that replaces substrings.

◆ replaced()

R simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::replaced ( str_piece pattern,
str_piece repl,
size_t offset = 0,
size_t maxCount = 0 ) const
inlineinherited

Get a copy of the string with occurrences of substrings replaced.

Template Parameters
R- the desired string type, by default the same whose method was called.
Parameters
pattern- the substring to search for.
repl- the string to replace with.
offset- starting position of the search.
maxCount- maximum number of replacements, 0 - no restrictions.
Returns
R a string of the given type, by default the same whose method was called.

◆ size()

size_t simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::size ( ) const
inlineinherited

The size of the string in characters.

Returns
size_t

◆ split()

T simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::split ( str_piece delimeter,
size_t offset = 0 ) const
inlineinherited

Split a string into substrings using a given delimiter.

Template Parameters
T- container type for the result.
Parameters
delimeter- delimiter.
offset- the position to start searching for the separator.
Returns
T - container with the result.

◆ splitf()

T simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::splitf ( str_piece delimeter,
const Op & beforeFunc,
size_t offset = 0 ) const
inlineinherited

Split a string into parts at a given delimiter, possibly applying a functor to each substring.

Template Parameters
T- type of container for folding substrings.
Parameters
delimeter- substring delimiter.
beforeFunc- a functor to apply to the found substrings, before placing them in the result.
offset- the position to start searching for the separator.
Returns
T - result.

For each substring found, if the functor can accept it, the functor is called, and the substring is assigned to the result of the functor. Next, the substring tries to be added to the result, calling one of its methods - emplace_back, push_back, operator[]. If none of this method no, nothing is done, just calling the functor. operator[] tries to apply if the result can have a size via std::size and we do not exceed this size. At the same time, if the found substring turns out to match the entire string, the result is attempted place not a substring, but the entire string object, which allows, for example, to effectively copy sstring.

◆ splitter()

Splitter< K > simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::splitter ( str_piece delimeter) const
inherited

Retrieve a Splitter object by the given splitter, which allows sequential get substrings using the next() method while is_done() is false.

Parameters
delimeter- delimiter.
Returns
Splitter<K>.

◆ starts_with()

bool simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::starts_with ( str_piece prefix) const
inlineconstexprnoexceptinherited

Whether the string begins with the given substring.

Parameters
prefix- substring.

◆ starts_with_ia()

bool simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::starts_with_ia ( str_piece prefix) const
inlineconstexprnoexceptinherited

Whether the string begins with the given substring in a case-insensitive ASCII character.

Parameters
prefix- substring.

◆ starts_with_iu()

bool simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::starts_with_iu ( str_piece prefix) const
inlinenoexceptinherited

Whether the string starts with the given substring, case-insensitive Unicode characters of the first plane (<0xFFFF).

Parameters
prefix- substring.

◆ str_mid()

my_type simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::str_mid ( size_t from,
size_t len = -1 ) const
inlineinherited

Get part of a string with an object of the same type to which the method is applied, similar to mid.

Parameters
from- number of characters from the beginning of the line. If the string size is exceeded, it will return an empty string.
len- the number of characters in the resulting "chunk". When going beyond the line, it will return everything up to the end of the line.
Returns
A string of the same type to which the method is applied.

◆ strcmp()

int simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::strcmp ( const K * text) const
inlineconstexprinherited

Compare with C-string character by character.

Parameters
text- another line.
Returns
<0 this string is less, ==0 - strings are equal, >0 - this string is greater.

◆ substr()

my_type simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::substr ( ptrdiff_t from,
ptrdiff_t len = 0 ) const
inlineinherited

Get a substring. Works similarly to operator(), only the result is the same type as the method applied to.

Parameters
from- number of characters from the beginning of the line. If less than zero, it is counted from the end of the line towards the beginning.
len- the number of characters in the resulting "chunk". If less than or equal to zero, then count len ​​characters from the end of the line.
Returns
my_type - a substring, an object of the same type to which the method is applied.

◆ to_double()

std::optional< double > simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::to_double ( ) const
inlinenoexceptinherited

Convert string to double.

Returns
std::optional<double>.

◆ to_double_hex()

std::optional< double > simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::to_double_hex ( ) const
inlinenoexceptinherited

Convert string in hex form to double.

Returns
std::optional<double>.

◆ to_int()

convert_result< T > simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::to_int ( ) const
inlinenoexceptinherited

Convert a string to a number of the given type.

Template Parameters
T- the desired number type.
CheckOverflow- check for overflow.
Base- the base of the number, from -1 to 36, except 1.
  • If 0: then tries to determine the base by the prefix 0[xX] as 16, 0 as 8, otherwise 10
  • If -1: then tries to determine the base by prefixes:
    • 0 or 0[oO]: 8
    • 0[bB]: 2
    • 0[xX]: 16
  • in other cases 10.
SkipWs- skip whitespace characters at the beginning of the line. All characters with ASCII codes <= 32 are skipped.
AllowSign- whether the '+' sign is allowed before a number.
Returns
convert_result<T> - a tuple of the received number, the success of the conversion and the number of characters processed.

◆ to_nts()

template<typename K>
my_type simstr::simple_str_nt< K >::to_nts ( size_t from)
inline

Get a null-terminated string by shifting the start by the specified number of characters.

Parameters
from- by how many characters to shift the beginning of the line.
Returns
my_type.

◆ to_str()

str_piece simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::to_str ( ) const
inlinenoexceptinherited

Convert itself to a "string chunk" that includes the entire string.

Returns
str_piece.

◆ to_string()

std::basic_string< K > simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::to_string ( ) const
inlinenoexceptinherited

Convert to std::string.

Returns
std::basic_string<K>.

◆ to_sv()

std::basic_string_view< K > simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::to_sv ( ) const
inlinenoexceptinherited

Convert to std::string_view.

Returns
std::basic_string_view<K>.

◆ trimmed() [1/3]

R simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::trimmed ( ) const
inlineinherited

Get a string with whitespace removed on the left and right.

Template Parameters
R- desired string type, default simple_str.
Returns
R - a string with whitespace characters removed at the beginning and end.

◆ trimmed() [2/3]

R simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::trimmed ( str_piece pattern) const
inlineinherited

Get a string with characters specified by another string removed, left and right.

Template Parameters
R- desired string type, default simple_str.
Parameters
pattern- a string specifying the characters that will be trimmed.
Returns
R - a string with the characters contained in the pattern removed at the beginning and at the end.

◆ trimmed() [3/3]

R simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::trimmed ( T && pattern) const
inlineinherited

Get a string with the characters specified by the string literal removed from the left and right.

Template Parameters
R- desired string type, default simple_str.
Parameters
patternis a string literal specifying the characters that will be trimmed.
Returns
R - a string with the characters contained in the literal removed at the beginning and at the end.

◆ trimmed_left() [1/3]

R simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::trimmed_left ( ) const
inlineinherited

Get a string with whitespace removed on the left.

Template Parameters
R- desired string type, default simple_str.
Returns
R - a string with leading whitespace characters removed.

◆ trimmed_left() [2/3]

R simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::trimmed_left ( str_piece pattern) const
inlineinherited

Get a string with characters specified by another string removed from the left.

Template Parameters
R- desired string type, default simple_str.
Parameters
pattern- a string specifying the characters that will be trimmed.
Returns
R - a string with the characters contained in the pattern removed at the beginning.

◆ trimmed_left() [3/3]

R simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::trimmed_left ( T && pattern) const
inlineinherited

Get a string with the characters specified by the string literal removed from the left.

Template Parameters
R- desired string type, default simple_str.
Parameters
patternis a string literal specifying the characters that will be trimmed.
Returns
R - a string with the characters contained in the literal removed at the beginning.

◆ trimmed_left_with_spaces() [1/2]

R simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::trimmed_left_with_spaces ( str_piece pattern) const
inlineinherited

Get a string, removing characters specified by another string, as well as whitespace characters, left.

Template Parameters
R- desired string type, default simple_str.
Parameters
pattern- a string specifying the characters that will be trimmed.
Returns
R - a string with the characters contained in the pattern removed at the beginning and whitespace characters.

◆ trimmed_left_with_spaces() [2/2]

R simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::trimmed_left_with_spaces ( T && pattern) const
inlineinherited

Get a string with the characters specified by the string literal removed, as well as whitespace characters, left.

Template Parameters
R- desired string type, default simple_str.
Parameters
patternis a string literal specifying the characters that will be trimmed.
Returns
R - a string with the characters contained in the literal removed at the beginning and whitespace characters.

◆ trimmed_right() [1/3]

R simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::trimmed_right ( ) const
inlineinherited

Get a string with whitespace removed on the right.

Template Parameters
R- desired string type, default simple_str.
Returns
R - a string with whitespace characters removed at the end.

◆ trimmed_right() [2/3]

R simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::trimmed_right ( str_piece pattern) const
inlineinherited

Get a string with characters specified by another string removed to the right.

Template Parameters
R- desired string type, default simple_str.
Parameters
pattern- a string specifying the characters that will be trimmed.
Returns
R - a string with characters contained in the pattern removed at the end.

◆ trimmed_right() [3/3]

R simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::trimmed_right ( T && pattern) const
inlineinherited

Get a string with the characters specified by the string literal removed from the right.

Template Parameters
R- desired string type, default simple_str.
Parameters
patternis a string literal specifying the characters that will be trimmed.
Returns
R - a string with characters contained in the literal removed at the end.

◆ trimmed_right_with_spaces() [1/2]

R simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::trimmed_right_with_spaces ( str_piece pattern) const
inlineinherited

Get a string, removing characters specified by another string, as well as whitespace characters, right.

Template Parameters
R- desired string type, default simple_str.
Parameters
pattern- a string specifying the characters that will be trimmed.
Returns
R - a string with characters contained in the template removed at the end and whitespace characters.

◆ trimmed_right_with_spaces() [2/2]

R simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::trimmed_right_with_spaces ( T && pattern) const
inlineinherited

Get a string with the characters specified by the string literal removed, as well as whitespace characters, right.

Template Parameters
R- desired string type, default simple_str.
Parameters
patternis a string literal specifying the characters that will be trimmed.
Returns
R - a string with characters contained in the literal removed at the end and whitespace characters.

◆ trimmed_with_spaces() [1/2]

R simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::trimmed_with_spaces ( str_piece pattern) const
inlineinherited

Get a string, removing characters specified by another string, as well as whitespace characters, left and right.

Template Parameters
R- desired string type, default simple_str.
Parameters
pattern- a string specifying the characters that will be trimmed.
Returns
R - a string with the characters contained in the pattern removed at the beginning and at the end and whitespace characters.

◆ trimmed_with_spaces() [2/2]

R simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::trimmed_with_spaces ( T && pattern) const
inlineinherited

Get a string with the characters specified by the string literal removed, as well as whitespace characters, left and right.

Template Parameters
R- desired string type, default simple_str.
Parameters
patternis a string literal specifying the characters that will be trimmed.
Returns
R - a string with the characters contained in the literal removed at the beginning and at the end and whitespace characters.

◆ uppered()

R simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::uppered ( ) const
inlineinherited

Get a copy of the string in upper case Unicode characters of the first plane (<0xFFFF).

Template Parameters
R- the desired string type, by default the same whose method was called.
Returns
R - uppercase copy of the string.

◆ uppered_only_ascii()

R simstr::str_algs< K, simple_str< K >, simple_str< K >, Mutable >::uppered_only_ascii ( ) const
inlineinherited

Get a copy of the string in uppercase ASCII characters.

Template Parameters
R- the desired string type, by default the same whose method was called.
Returns
R - uppercase copy of the string.

The documentation for this struct was generated from the following file: