omw  0.2.1-beta
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

#define OMW_UTF8CP_00C4   "\xC3\x84"
 
#define OMW_UTF8CP_00D6   "\xC3\x96"
 
#define OMW_UTF8CP_00DC   "\xC3\x9C"
 
#define OMW_UTF8CP_00E4   "\xC3\xA4"
 
#define OMW_UTF8CP_00F6   "\xC3\xB6"
 
#define OMW_UTF8CP_00FC   "\xC3\xBC"
 
#define OMW_UTF8CP_2580   "\xE2\x96\x80"
 
#define OMW_UTF8CP_2584   "\xE2\x96\x84"
 
#define OMW_UTF8CP_2588   "\xE2\x96\x88"
 

UFT-8 Byte String Aliases

#define OMW_UTF8CP_Auml   OMW_UTF8CP_00C4
 
#define OMW_UTF8CP_Ouml   OMW_UTF8CP_00D6
 
#define OMW_UTF8CP_Uuml   OMW_UTF8CP_00DC
 
#define OMW_UTF8CP_auml   OMW_UTF8CP_00E4
 
#define OMW_UTF8CP_ouml   OMW_UTF8CP_00F6
 
#define OMW_UTF8CP_uuml   OMW_UTF8CP_00FC
 

UTF-8 Byte Strings

const char *const omw::UTF8CP_00C4 = OMW_UTF8CP_00C4
 
const char *const omw::UTF8CP_00D6 = OMW_UTF8CP_00D6
 
const char *const omw::UTF8CP_00DC = OMW_UTF8CP_00DC
 
const char *const omw::UTF8CP_00E4 = OMW_UTF8CP_00E4
 
const char *const omw::UTF8CP_00F6 = OMW_UTF8CP_00F6
 
const char *const omw::UTF8CP_00FC = OMW_UTF8CP_00FC
 
const char *const omw::UTF8CP_2580 = OMW_UTF8CP_2580
 
const char *const omw::UTF8CP_2584 = OMW_UTF8CP_2584
 
const char *const omw::UTF8CP_2588 = OMW_UTF8CP_2588
 

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
 

omw::string Implementation Functions

OMW_STDSTRING_CONSTEXPR bool omw::contains (const std::string &str, char ch)
 
OMW_STDSTRING_CONSTEXPR bool omw::contains (const std::string &str, const char *s)
 
OMW_STDSTRING_CONSTEXPR bool omw::contains (const std::string &str, const std::string &s)
 
omw::stringVector_t omw::split (const std::string &str, char delimiter, omw::stringVector_t::size_type maxTokenCount=omw::stringVector_npos)
 
omw::stringVector_t omw::split (const char *str, char delimiter, omw::stringVector_t::size_type maxTokenCount=omw::stringVector_npos)
 
omw::stringVector_t omw::splitLen (const std::string &str, std::string::size_type tokenLength, omw::stringVector_t::size_type maxTokenCount=omw::stringVector_npos)
 
omw::stringVector_t omw::splitLen (const char *str, std::string::size_type tokenLength, omw::stringVector_t::size_type maxTokenCount=omw::stringVector_npos)
 

Find and Replace

std::stringomw::replaceFirst (std::string &str, const std::string &search, const std::string &replace, std::string::size_type startPos=0)
 
std::stringomw::replaceFirst (std::string &str, const omw::StringReplacePair &pair, std::string::size_type startPos=0)
 
std::stringomw::replaceAll (std::string &str, char search, char replace, std::string::size_type startPos=0, size_t *nReplacements=nullptr)
 
std::stringomw::replaceAll (std::string &str, char search, const std::string &replace, std::string::size_type startPos=0, size_t *nReplacements=nullptr)
 
std::stringomw::replaceAll (std::string &str, const std::string &search, char replace, std::string::size_type startPos=0, size_t *nReplacements=nullptr)
 
std::stringomw::replaceAll (std::string &str, const std::string &search, const std::string &replace, std::string::size_type startPos=0, size_t *nReplacements=nullptr)
 
std::stringomw::replaceAll (std::string &str, const omw::StringReplacePair &pair, std::string::size_type startPos=0, size_t *nReplacements=nullptr)
 
std::stringomw::replaceAll (std::string &str, const std::vector< omw::StringReplacePair > &pairs, std::string::size_type startPos=0, size_t *nReplacementsTotal=nullptr, std::vector< size_t > *nReplacements=nullptr)
 
std::stringomw::replaceAll (std::string &str, const omw::StringReplacePair *pairs, size_t count, std::string::size_type startPos=0, size_t *nReplacementsTotal=nullptr, std::vector< size_t > *nReplacements=nullptr)
 

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)
 
size_t omw::stoz (const std::string &str, size_t *pos=nullptr, int base=10)
 
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::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, std::string::size_type pos=0, std::string::size_type count=std::string::npos)
 

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,
std::string::size_type  pos = 0,
std::string::size_type  count = std::string::npos 
)

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]

If p is NULL, 0 is returned.

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 element after the last element of 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.

If p is NULL or p is greater than or equal to end, 0 is returned.

◆ 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

◆ replaceAll() [1/7]

std::string & omw::replaceAll ( std::string str,
char  search,
char  replace,
std::string::size_type  startPos = 0,
size_t *  nReplacements = nullptr 
)
Parameters
[in,out]str
searchCharacter to be replaced
replaceCharacter for replacement
startPosFrom where to start searching
[out]nReplacementsNumber of occurrences
Returns
The parameter str

◆ replaceAll() [2/7]

std::string & omw::replaceAll ( std::string str,
char  search,
const std::string replace,
std::string::size_type  startPos = 0,
size_t *  nReplacements = nullptr 
)
Parameters
[in,out]str
searchCharacter to be replaced
replaceString for replacement
startPosFrom where to start searching
[out]nReplacementsNumber of occurrences
Returns
The parameter str

◆ replaceAll() [3/7]

std::string & omw::replaceAll ( std::string str,
const omw::StringReplacePair pair,
std::string::size_type  startPos = 0,
size_t *  nReplacements = nullptr 
)
Parameters
[in,out]str
pairSearch and replace string pair
startPosFrom where to start searching
[out]nReplacementsNumber of occurrences
Returns
The parameter str

◆ replaceAll() [4/7]

std::string & omw::replaceAll ( std::string str,
const omw::StringReplacePair pairs,
size_t  count,
std::string::size_type  startPos = 0,
size_t *  nReplacementsTotal = nullptr,
std::vector< size_t > *  nReplacements = nullptr 
)
Parameters
[in,out]str
pairsPointer to a replace pair array
count
startPosFrom where to start searching
[out]nReplacementsTotalTotal number of occurrences
[out]nReplacementsNumber of occurrences of specific replace pair
Returns
The parameter str

◆ replaceAll() [5/7]

std::string & omw::replaceAll ( std::string str,
const std::string search,
char  replace,
std::string::size_type  startPos = 0,
size_t *  nReplacements = nullptr 
)
Parameters
[in,out]str
searchSubstring to be replaced
replaceCharacter for replacement
startPosFrom where to start searching
[out]nReplacementsNumber of occurrences
Returns
The parameter str

◆ replaceAll() [6/7]

std::string & omw::replaceAll ( std::string str,
const std::string search,
const std::string replace,
std::string::size_type  startPos = 0,
size_t *  nReplacements = nullptr 
)
Parameters
[in,out]str
searchSubstring to be replaced
replaceString for replacement
startPosFrom where to start searching
[out]nReplacementsNumber of occurrences
Returns
The parameter str

◆ replaceAll() [7/7]

std::string & omw::replaceAll ( std::string str,
const std::vector< omw::StringReplacePair > &  pairs,
std::string::size_type  startPos = 0,
size_t *  nReplacementsTotal = nullptr,
std::vector< size_t > *  nReplacements = nullptr 
)
Parameters
[in,out]str
pairsSearch and replace string pair vector
startPosFrom where to start searching
[out]nReplacementsTotalTotal number of occurrences
[out]nReplacementsNumber of occurrences of specific replace pair
Returns
The parameter str

◆ replaceFirst()

std::string & omw::replaceFirst ( std::string str,
const std::string search,
const std::string replace,
std::string::size_type  startPos = 0 
)
Parameters
[in,out]str
searchSubstring to be replaced
replaceString for replacement
startPosFrom where to start searching
Returns
The parameter str

◆ 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