SourcePP
Several modern C++20 libraries for sanely parsing Valve's formats.
Loading...
Searching...
No Matches
sourcepp::string Namespace Reference

Functions

bool isNewLine (char c)
 If a char is a newline character.
bool isNewLine (std::string_view str)
 If a string is entirely composed of newline characters.
bool isWhitespace (char c)
 If a char is a whitespace character.
bool isWhitespace (std::string_view str)
 If a string is entirely composed of whitespace characters.
bool isNumber (char c)
 If a char is a numerical character (0-9).
bool isNumber (std::string_view str)
 If a string is entirely composed of numerical characters (0-9).
bool isAlphaNumeric (char c)
 If a char is a letter (a-z, A-Z) or a numerical character (0-9).
bool isAlphaNumeric (std::string_view str)
 If a string is entirely composed of alphanumeric characters (a-z, A-Z, 0-9).
bool contains (std::string_view s, char c)
bool matches (std::string_view in, std::string_view search, bool ignoreCase=false)
 A very basic regex-like pattern checker for ASCII strings.
bool iequals (std::string_view s1, std::string_view s2)
void ltrim (std::string &s)
std::string_view ltrim (std::string_view s)
void rtrim (std::string &s)
std::string_view rtrim (std::string_view s)
void trim (std::string &s)
std::string_view trim (std::string_view s)
void trimInternal (std::string &s)
std::string trimInternal (std::string_view s)
void ltrim (std::string &s, std::string_view chars)
std::string_view ltrim (std::string_view s, std::string_view chars)
void rtrim (std::string &s, std::string_view chars)
std::string_view rtrim (std::string_view s, std::string_view chars)
void trim (std::string &s, std::string_view chars)
std::string_view trim (std::string_view s, std::string_view chars)
void trimInternal (std::string &s, std::string_view chars)
std::string trimInternal (std::string_view s, std::string_view chars)
std::vector< std::string > split (std::string_view s, char delim)
void toLower (std::string &input)
std::string toLower (std::string_view input)
void toUpper (std::string &input)
std::string toUpper (std::string_view input)
std::string createRandom (uint16_t length=32, std::string_view chars="0123456789_abcdefghijklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ")
std::string generateUUIDv4 ()
std::string padNumber (int64_t number, int width)
void normalizeSlashes (std::string &path, bool stripSlashPrefix=false, bool stripSlashSuffix=true)
void denormalizeSlashes (std::string &path, bool stripSlashPrefix=false, bool stripSlashSuffix=true)
bool toBool (std::string_view number, bool &out, int base=10)
bool isBool (std::string_view number, int base=10)
bool toInt (std::string_view number, std::integral auto &out, int base=10)
template<std::integral T>
bool isInt (std::string_view number, int base=10)
bool toFloat (std::string_view number, std::floating_point auto &out)
template<std::floating_point T>
bool isFloat (std::string_view number)
std::vector< std::byte > decodeHex (std::string_view hex)
std::string encodeHex (std::span< const std::byte > hex)

Function Documentation

◆ contains()

bool sourcepp::string::contains ( std::string_view s,
char c )
nodiscard

Definition at line 55 of file String.cpp.

◆ createRandom()

std::string sourcepp::string::createRandom ( uint16_t length = 32,
std::string_view chars = "0123456789_abcdefghijklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ" )
nodiscard

Definition at line 220 of file String.cpp.

◆ decodeHex()

std::vector< std::byte > sourcepp::string::decodeHex ( std::string_view hex)
nodiscard

Definition at line 292 of file String.cpp.

◆ denormalizeSlashes()

void sourcepp::string::denormalizeSlashes ( std::string & path,
bool stripSlashPrefix = false,
bool stripSlashSuffix = true )

Definition at line 270 of file String.cpp.

◆ encodeHex()

std::string sourcepp::string::encodeHex ( std::span< const std::byte > hex)
nodiscard

Definition at line 319 of file String.cpp.

◆ generateUUIDv4()

std::string sourcepp::string::generateUUIDv4 ( )
nodiscard

Definition at line 232 of file String.cpp.

◆ iequals()

bool sourcepp::string::iequals ( std::string_view s1,
std::string_view s2 )
nodiscard

Definition at line 96 of file String.cpp.

◆ isAlphaNumeric() [1/2]

bool sourcepp::string::isAlphaNumeric ( char c)
nodiscard

If a char is a letter (a-z, A-Z) or a numerical character (0-9).

Parameters
cThe char.
Returns
The char is an alphanumeric character.

Definition at line 47 of file String.cpp.

◆ isAlphaNumeric() [2/2]

bool sourcepp::string::isAlphaNumeric ( std::string_view str)
nodiscard

If a string is entirely composed of alphanumeric characters (a-z, A-Z, 0-9).

Parameters
strThe string.
Returns
The string is entirely composed of alphanumeric characters.

Definition at line 51 of file String.cpp.

◆ isBool()

bool sourcepp::string::isBool ( std::string_view number,
int base = 10 )
nodiscard

Definition at line 287 of file String.cpp.

◆ isFloat()

template<std::floating_point T>
bool sourcepp::string::isFloat ( std::string_view number)
nodiscard

Definition at line 169 of file String.h.

◆ isInt()

template<std::integral T>
bool sourcepp::string::isInt ( std::string_view number,
int base = 10 )
nodiscard

Definition at line 147 of file String.h.

◆ isNewLine() [1/2]

bool sourcepp::string::isNewLine ( char c)
nodiscard

If a char is a newline character.

Parameters
cThe char.
Returns
The char is a newline character.

Definition at line 23 of file String.cpp.

◆ isNewLine() [2/2]

bool sourcepp::string::isNewLine ( std::string_view str)
nodiscard

If a string is entirely composed of newline characters.

Parameters
strThe string.
Returns
The string is entirely composed of newline characters.

Definition at line 27 of file String.cpp.

◆ isNumber() [1/2]

bool sourcepp::string::isNumber ( char c)
nodiscard

If a char is a numerical character (0-9).

Parameters
cThe char.
Returns
The char is a numerical character.

Definition at line 39 of file String.cpp.

◆ isNumber() [2/2]

bool sourcepp::string::isNumber ( std::string_view str)
nodiscard

If a string is entirely composed of numerical characters (0-9).

Parameters
strThe string.
Returns
The string is entirely composed of numerical characters.

Definition at line 43 of file String.cpp.

◆ isWhitespace() [1/2]

bool sourcepp::string::isWhitespace ( char c)
nodiscard

If a char is a whitespace character.

Parameters
cThe char.
Returns
The char is a whitespace character.

Definition at line 31 of file String.cpp.

◆ isWhitespace() [2/2]

bool sourcepp::string::isWhitespace ( std::string_view str)
nodiscard

If a string is entirely composed of whitespace characters.

Parameters
strThe string.
Returns
The string is entirely composed of whitespace characters.

Definition at line 35 of file String.cpp.

◆ ltrim() [1/4]

void sourcepp::string::ltrim ( std::string & s)

Definition at line 102 of file String.cpp.

◆ ltrim() [2/4]

void sourcepp::string::ltrim ( std::string & s,
std::string_view chars )

Definition at line 143 of file String.cpp.

◆ ltrim() [3/4]

std::string_view sourcepp::string::ltrim ( std::string_view s)
nodiscard

Definition at line 106 of file String.cpp.

◆ ltrim() [4/4]

std::string_view sourcepp::string::ltrim ( std::string_view s,
std::string_view chars )
nodiscard

Definition at line 149 of file String.cpp.

◆ matches()

bool sourcepp::string::matches ( std::string_view in,
std::string_view search,
bool ignoreCase = false )
nodiscard

A very basic regex-like pattern checker for ASCII strings.

Supports: %? - matches any character w - matches a whitespace character (defined by std::isspace) a - matches a letter (A-Z, a-z) u - matches an uppercase letter (A-Z) l - matches a lowercase letter (a-z) d - matches a single digit (0-9) %% - escaped percent character

Definition at line 59 of file String.cpp.

◆ normalizeSlashes()

void sourcepp::string::normalizeSlashes ( std::string & path,
bool stripSlashPrefix = false,
bool stripSlashSuffix = true )

Definition at line 260 of file String.cpp.

◆ padNumber()

std::string sourcepp::string::padNumber ( int64_t number,
int width )
nodiscard

Definition at line 256 of file String.cpp.

◆ rtrim() [1/4]

void sourcepp::string::rtrim ( std::string & s)

Definition at line 113 of file String.cpp.

◆ rtrim() [2/4]

void sourcepp::string::rtrim ( std::string & s,
std::string_view chars )

Definition at line 156 of file String.cpp.

◆ rtrim() [3/4]

std::string_view sourcepp::string::rtrim ( std::string_view s)
nodiscard

Definition at line 117 of file String.cpp.

◆ rtrim() [4/4]

std::string_view sourcepp::string::rtrim ( std::string_view s,
std::string_view chars )
nodiscard

Definition at line 162 of file String.cpp.

◆ split()

std::vector< std::string > sourcepp::string::split ( std::string_view s,
char delim )
nodiscard

Definition at line 190 of file String.cpp.

◆ toBool()

bool sourcepp::string::toBool ( std::string_view number,
bool & out,
int base = 10 )

Definition at line 280 of file String.cpp.

◆ toFloat()

bool sourcepp::string::toFloat ( std::string_view number,
std::floating_point auto & out )

Definition at line 152 of file String.h.

◆ toInt()

bool sourcepp::string::toInt ( std::string_view number,
std::integral auto & out,
int base = 10 )

Definition at line 141 of file String.h.

◆ toLower() [1/2]

void sourcepp::string::toLower ( std::string & input)

Definition at line 200 of file String.cpp.

◆ toLower() [2/2]

std::string sourcepp::string::toLower ( std::string_view input)
nodiscard

Definition at line 204 of file String.cpp.

◆ toUpper() [1/2]

void sourcepp::string::toUpper ( std::string & input)

Definition at line 210 of file String.cpp.

◆ toUpper() [2/2]

std::string sourcepp::string::toUpper ( std::string_view input)
nodiscard

Definition at line 214 of file String.cpp.

◆ trim() [1/4]

void sourcepp::string::trim ( std::string & s)

Definition at line 124 of file String.cpp.

◆ trim() [2/4]

void sourcepp::string::trim ( std::string & s,
std::string_view chars )

Definition at line 169 of file String.cpp.

◆ trim() [3/4]

std::string_view sourcepp::string::trim ( std::string_view s)
nodiscard

Definition at line 129 of file String.cpp.

◆ trim() [4/4]

std::string_view sourcepp::string::trim ( std::string_view s,
std::string_view chars )
nodiscard

Definition at line 174 of file String.cpp.

◆ trimInternal() [1/4]

void sourcepp::string::trimInternal ( std::string & s)

Definition at line 133 of file String.cpp.

◆ trimInternal() [2/4]

void sourcepp::string::trimInternal ( std::string & s,
std::string_view chars )

Definition at line 178 of file String.cpp.

◆ trimInternal() [3/4]

std::string sourcepp::string::trimInternal ( std::string_view s)
nodiscard

Definition at line 137 of file String.cpp.

◆ trimInternal() [4/4]

std::string sourcepp::string::trimInternal ( std::string_view s,
std::string_view chars )
nodiscard

Definition at line 182 of file String.cpp.