omw  0.2.0
Classes | Typedefs | Functions | Variables
Strings Library

Classes

class  omw::StringReplacePair
 
class  omw::string
 

Typedefs

using omw::stdStringVector_t = std::vector< std::string >
 
using omw::stringVector_t = std::vector< omw::string >
 

Functions

omw::string omw::join (const omw::stringVector_t &strings)
 
omw::string omw::join (const omw::stringVector_t &strings, char delimiter)
 
size_t omw::peekNewLine (const char *p)
 
size_t omw::peekNewLine (const char *p, const char *end)
 
omw::string omw::readString (const uint8_t *data, size_t count)
 
omw::string omw::readString (const std::vector< uint8_t > &data, std::vector< uint8_t >::size_type pos, std::vector< uint8_t >::size_type count)
 
void omw::writeString (uint8_t *buffer, const uint8_t *end, const std::string &str)
 
void omw::writeString (std::vector< uint8_t > &buffer, std::vector< uint8_t >::size_type pos, const std::string &str)
 

Variables

constexpr char omw::pairtos_defaultDelimiter = ';'
 
const char *const omw::hexStrDigitsUpper = "0123456789ABCDEF"
 
const char *const omw::hexStrDigitsLower = "0123456789abcdef"
 
const char *const omw::hexStrDigits = hexStrDigitsUpper
 
constexpr char omw::toHexStr_defaultDelimiter = 0x20
 
constexpr omw::stdStringVector_t::size_type omw::stdStringVector_npos = static_cast<omw::stdStringVector_t::size_type>(-1)
 
constexpr omw::stringVector_t::size_type omw::stringVector_npos = static_cast<omw::stringVector_t::size_type>(-1)
 

UTF-8 Byte Strings

const char *const omw::UTF8CP_00C4 = "\xC3\x84"
 
const char *const omw::UTF8CP_00D6 = "\xC3\x96"
 
const char *const omw::UTF8CP_00DC = "\xC3\x9C"
 
const char *const omw::UTF8CP_00E4 = "\xC3\xA4"
 
const char *const omw::UTF8CP_00F6 = "\xC3\xB6"
 
const char *const omw::UTF8CP_00FC = "\xC3\xBC"
 
const char *const omw::UTF8CP_2580 = "\xE2\x96\x80"
 
const char *const omw::UTF8CP_2584 = "\xE2\x96\x84"
 
const char *const omw::UTF8CP_2588 = "\xE2\x96\x88"
 

UFT-8 Byte String Aliases

const char *const omw::UTF8CP_Auml = omw::UTF8CP_00C4
 
const char *const omw::UTF8CP_Ouml = omw::UTF8CP_00D6
 
const char *const omw::UTF8CP_Uuml = omw::UTF8CP_00DC
 
const char *const omw::UTF8CP_auml = omw::UTF8CP_00E4
 
const char *const omw::UTF8CP_ouml = omw::UTF8CP_00F6
 
const char *const omw::UTF8CP_uuml = omw::UTF8CP_00FC
 

Convert To String

omw::string omw::to_string (int32_t value)
 
omw::string omw::to_string (uint32_t value)
 
omw::string omw::to_string (int64_t value)
 
omw::string omw::to_string (uint64_t value)
 
omw::string omw::to_string (float value)
 
omw::string omw::to_string (double value)
 
omw::string omw::to_string (long double value)
 
omw::string omw::to_string (bool value, bool asText=true)
 
omw::string omw::to_string (const omw::int128_t &value)
 
omw::string omw::to_string (const omw::uint128_t &value)
 
omw::string omw::to_string (const std::pair< int32_t, int32_t > &value, char delimiter=pairtos_defaultDelimiter)
 
omw::string omw::to_string (const std::pair< uint32_t, uint32_t > &value, char delimiter=pairtos_defaultDelimiter)
 
omw::string omw::to_string (const std::pair< int64_t, int64_t > &value, char delimiter=pairtos_defaultDelimiter)
 
omw::string omw::to_string (const std::pair< uint64_t, uint64_t > &value, char delimiter=pairtos_defaultDelimiter)
 
omw::string omw::to_string (const std::pair< float, float > &value, char delimiter=pairtos_defaultDelimiter)
 
omw::string omw::to_string (const std::pair< double, double > &value, char delimiter=pairtos_defaultDelimiter)
 
omw::string omw::to_string (const std::pair< long double, long double > &value, char delimiter=pairtos_defaultDelimiter)
 

Convert From String

bool omw::stob (const std::string &boolStr)
 
std::pair< int32_t, int32_t > omw::stoipair (const std::string &str, char delimiter=pairtos_defaultDelimiter)
 

Hex Strings

omw::string omw::toHexStr (int8_t value)
 
omw::string omw::toHexStr (uint8_t value)
 
omw::string omw::toHexStr (int16_t value)
 
omw::string omw::toHexStr (uint16_t value)
 
omw::string omw::toHexStr (int32_t value)
 
omw::string omw::toHexStr (uint32_t value)
 
omw::string omw::toHexStr (int64_t value)
 
omw::string omw::toHexStr (uint64_t value)
 
omw::string omw::toHexStr (const omw::Base_Int128 &value)
 
omw::string omw::toHexStr (int16_t value, char delimiter)
 
omw::string omw::toHexStr (uint16_t value, char delimiter)
 
omw::string omw::toHexStr (int32_t value, char delimiter)
 
omw::string omw::toHexStr (uint32_t value, char delimiter)
 
omw::string omw::toHexStr (int64_t value, char delimiter)
 
omw::string omw::toHexStr (uint64_t value, char delimiter)
 
omw::string omw::toHexStr (const omw::Base_Int128 &value, char delimiter)
 
omw::string omw::toHexStr (const std::vector< char > &data, char delimiter=toHexStr_defaultDelimiter)
 
omw::string omw::toHexStr (const std::vector< uint8_t > &data, char delimiter=toHexStr_defaultDelimiter)
 
omw::string omw::toHexStr (const char *data, size_t count, char delimiter=toHexStr_defaultDelimiter)
 
omw::string omw::toHexStr (const uint8_t *data, size_t count, char delimiter=toHexStr_defaultDelimiter)
 
int32_t omw::hexstoi (const std::string &str)
 
int64_t omw::hexstoi64 (const std::string &str)
 
omw::int128_t omw::hexstoi128 (const std::string &str)
 
uint32_t omw::hexstoui (const std::string &str)
 
uint64_t omw::hexstoui64 (const std::string &str)
 
omw::uint128_t omw::hexstoui128 (const std::string &str)
 
std::vector< uint8_t > omw::hexstovector (const std::string &str, char delimiter=toHexStr_defaultDelimiter)
 
omw::string omw::sepHexStr (const std::string &str)
 
omw::string omw::sepHexStr (const std::string &str, char delimiter)
 
omw::string omw::sepHexStr (const std::string &str, char rmChar, char delimiter)
 
omw::string omw::sepHexStr (const std::string &str, const char *rmChars, size_t count, char delimiter=toHexStr_defaultDelimiter)
 
omw::string omw::sepHexStr (const std::string &str, const std::vector< char > &rmChars, char delimiter=toHexStr_defaultDelimiter)
 
omw::string omw::rmNonHex (const std::string &str)
 
void omw::rmNonHex (char *str)
 
void omw::rmNonHex (std::string &str)
 

String Vectors

omw::stringVector_t omw::stringVector (const char *const *strings, size_t count)
 
omw::stringVector_t omw::stringVector (const std::string *strings, size_t count)
 
omw::stringVector_t omw::stringVector (const omw::string *strings, size_t count)
 
omw::stringVector_t omw::stringVector (const omw::stdStringVector_t &strvec)
 
omw::stdStringVector_t omw::stdStringVector (const char *const *strings, size_t count)
 
omw::stdStringVector_t omw::stdStringVector (const std::string *strings, size_t count)
 
omw::stdStringVector_t omw::stdStringVector (const omw::string *strings, size_t count)
 
omw::stdStringVector_t omw::stdStringVector (const omw::stringVector_t &strvec)
 

Character Classification

constexpr bool omw::isBlank (char ch)
 
constexpr bool omw::isCntrl (char ch)
 
constexpr bool omw::isDigit (char ch)
 
constexpr bool omw::isGraph (char ch)
 
constexpr bool omw::isHex (char ch)
 
constexpr bool omw::isLower (char ch)
 
constexpr bool omw::isNull (char ch)
 
constexpr bool omw::isPrint (char ch)
 
constexpr bool omw::isPunct (char ch)
 
constexpr bool omw::isSpace (char ch)
 
constexpr bool omw::isUpper (char ch)
 
constexpr bool omw::isWhitespace (char ch)
 
constexpr bool omw::isAlpha (char ch)
 
constexpr bool omw::isAlnum (char ch)
 

String Classification

bool omw::isInteger (const std::string &str)
 
bool omw::isUInteger (const std::string &str)
 
bool omw::isHex (const std::string &str)
 

Detailed Description

#include <omw/string.h>

Function Documentation

◆ hexstoi()

int32_t omw::hexstoi ( const std::string str)
Parameters
strHexadecimal string representation
Returns
The corresponding value

Exceptions

◆ hexstoi128()

omw::int128_t omw::hexstoi128 ( const std::string str)
Parameters
strHexadecimal string representation
Returns
The corresponding value

Exceptions

◆ hexstoi64()

int64_t omw::hexstoi64 ( const std::string str)
Parameters
strHexadecimal string representation
Returns
The corresponding value

Exceptions

◆ hexstoui()

uint32_t omw::hexstoui ( const std::string str)
Parameters
strHexadecimal string representation
Returns
The corresponding value

Exceptions

◆ hexstoui128()

omw::uint128_t omw::hexstoui128 ( const std::string str)
Parameters
strHexadecimal string representation
Returns
The corresponding value

Exceptions

◆ hexstoui64()

uint64_t omw::hexstoui64 ( const std::string str)
Parameters
strHexadecimal string representation
Returns
The corresponding value

Exceptions

◆ isHex()

bool omw::isHex ( const std::string str)

An empty string returns false.

◆ isInteger()

bool omw::isInteger ( const std::string str)

◆ isUInteger()

bool omw::isUInteger ( const std::string str)

Ignores leading zeros.

An empty string returns false.

◆ peekNewLine() [1/2]

size_t omw::peekNewLine ( const char *  p)
Parameters
pPointer to the position in the string
Returns
Number of new line characters at p, range: [0, 2]

It's recommended to use omw::peekNewLine(const char*, const char*) to prevent access violations.

◆ peekNewLine() [2/2]

size_t omw::peekNewLine ( const char *  p,
const char *  end 
)
Parameters
pPointer to the position in the string
endPointer to the first position beyond the string
Returns
Number of new line characters at p, range: [0, 2]

If end is NULL, omw::peekNewLine(const char*) will be used, hence access violations may occure.

Does not throw an exception, but return 0 if the pointers are invalid.

◆ readString() [1/2]

omw::string omw::readString ( const std::vector< uint8_t > &  data,
std::vector< uint8_t >::size_type  pos,
std::vector< uint8_t >::size_type  count 
)

Reads the data to construct a string from a byte buffer.

Exceptions

◆ readString() [2/2]

omw::string omw::readString ( const uint8_t *  data,
size_t  count 
)

Reads the data to construct a string from a byte buffer.

Exceptions

◆ sepHexStr() [1/5]

omw::string omw::sepHexStr ( const std::string str)

Same as omw::sepHexStr(const std::string&, char) with omw::toHexStr_defaultdelimiter.

◆ sepHexStr() [2/5]

omw::string omw::sepHexStr ( const std::string str,
char  delimiter 
)

Separates a concatonated hex string by adding a delimiter between the bytes.

Prepends a 0 if length is odd.

Example:

delimiter = '-'
1223344 => 01-22-33-44

◆ sepHexStr() [3/5]

omw::string omw::sepHexStr ( const std::string str,
char  rmChar,
char  delimiter 
)

Removes all rmChar from the string and returns omw::sepHexStr(const std::string&, char).

◆ sepHexStr() [4/5]

omw::string omw::sepHexStr ( const std::string str,
const char *  rmChars,
size_t  count,
char  delimiter = toHexStr_defaultDelimiter 
)

Removes all characters pointed to by rmChars from the string and returns omw::sepHexStr(const std::string&, char).

◆ sepHexStr() [5/5]

omw::string omw::sepHexStr ( const std::string str,
const std::vector< char > &  rmChars,
char  delimiter = toHexStr_defaultDelimiter 
)

Removes all characters in rmChars from the string and returns omw::sepHexStr(const std::string&, char).

◆ stob()

bool omw::stob ( const std::string boolStr)
Parameters
boolStrBoolean string representation
Returns
Bool value of the string

true and 1 converts to true, false and 0 to false. The input is not case sensitive.

Exceptions

◆ stoipair()

std::pair< int32_t, int32_t > omw::stoipair ( const std::string str,
char  delimiter = pairtos_defaultDelimiter 
)
Parameters
strPair string representation
delimiterCharacter between the two values
Returns
std::pair with the two values

Exceptions

◆ writeString() [1/2]

void omw::writeString ( std::vector< uint8_t > &  buffer,
std::vector< uint8_t >::size_type  pos,
const std::string str 
)

Writes a string to a byte buffer (without a null terminator).

Exceptions

◆ writeString() [2/2]

void omw::writeString ( uint8_t *  buffer,
const uint8_t *  end,
const std::string str 
)

Writes a string to a byte buffer (without a null terminator).

Exceptions