32 outStr.begin(), outStr.end(),
34 (int (*)(int))tolower);
45 outStr.begin(), outStr.end(),
47 (int (*)(int))toupper);
59 #define MASK2BYTES 0xC0 60 #define MASK3BYTES 0xE0 61 #define MASK4BYTES 0xF0 62 #define MASK5BYTES 0xF8 63 #define MASK6BYTES 0xFC 68 output.reserve(
input.size());
69 for (
size_t i = 0; i <
input.size(); i++)
74 output += (char)
input[i];
77 else if (
input[i] < 0x800)
101 output.reserve(
input.size());
102 for (
size_t i = 0; i <
input.size();)
125 output.push_back(ch);
136 const double val,
int nDecimalDigits,
bool middle_space)
140 const double aVal = std::abs(
val);
147 else if (aVal >= 1e9)
152 else if (aVal >= 1e6)
157 else if (aVal >= 1e3)
167 else if (aVal >= 1e-3)
172 else if (aVal >= 1e-6)
177 else if (aVal >= 1e-9)
189 middle_space ?
"%.*f %c" :
"%.*f%c", nDecimalDigits,
val * mult,
197 char* str,
const char* strDelimit,
char** context) noexcept
199 #if defined(_MSC_VER) && (_MSC_VER >= 1400) 201 return ::strtok_s(str, strDelimit, context);
205 return ::strtok_r(str, strDelimit, context);
213 template <
class CONTAINER>
216 CONTAINER& outTokens,
bool skipBlankTokens) noexcept
220 const size_t len = inString.size();
221 bool prev_was_delim =
true;
223 for (
size_t pos = 0; pos <=
len; pos++)
236 cur_is_delim = (inDelimiters.find(
c) != string::npos);
242 if (!skipBlankTokens) outTokens.push_back(
std::string());
246 outTokens.push_back(cur_token);
252 cur_token.push_back(
c);
254 prev_was_delim = cur_is_delim;
260 std::deque<std::string>& outTokens,
bool skipBlankTokens) noexcept
262 my_tokenize(inString, inDelimiters, outTokens, skipBlankTokens);
267 std::vector<std::string>& outTokens,
bool skipBlankTokens) noexcept
269 my_tokenize(inString, inDelimiters, outTokens, skipBlankTokens);
283 size_t s = str.find_first_not_of(
" \t");
284 size_t e = str.find_last_not_of(
" \t");
285 if (
s == std::string::npos || e == std::string::npos)
288 return str.substr(
s, e -
s + 1);
296 const std::string& str,
const size_t total_len,
bool truncate_if_larger)
299 if (
r.size() < total_len || truncate_if_larger)
r.resize(total_len,
' ');
320 s1.c_str(), s2.c_str(),
329 s1.c_str(), s2.c_str(),
Classes for serialization, sockets, ini-file manipulation, streams, list of properties-values, timewatch, extensions to STL.
unsigned __int16 uint16_t
This namespace provides a OS-independent interface to many useful functions: filenames manipulation...
int _strncmp(const char *str, const char *subStr, size_t count) noexcept
An OS-independent version of strncmp.
bool strStartsI(const std::string &str, const std::string &subStr)
Return true if "str" starts with "subStr" (case insensitive)
int _strnicmp(const char *str, const char *subStr, size_t count) noexcept
An OS-independent version of strnicmp.
void my_tokenize(const std::string &inString, const std::string &inDelimiters, CONTAINER &outTokens, bool skipBlankTokens) noexcept
bool strCmp(const std::string &s1, const std::string &s2)
Return true if the two strings are equal (case sensitive)
void encodeUTF8(const vector_word &input, std::string &output)
Encodes a 2-bytes UNICODE string into a UTF-8 string.
void decodeUTF8(const std::string &strUTF8, vector_word &out_uniStr)
Decodes a UTF-8 string into an UNICODE string.
std::string lowerCase(const std::string &str)
Returns an lower-case version of a string.
char * strtok(char *str, const char *strDelimit, char **context) noexcept
An OS-independent method for tokenizing a string.
std::string format(const char *fmt,...) MRPT_printf_format_check(1
A std::string version of C sprintf.
GLsizei const GLchar ** string
void tokenize(const std::string &inString, const std::string &inDelimiters, std::deque< std::string > &outTokens, bool skipBlankTokens=true) noexcept
Tokenizes a string according to a set of delimiting characters.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
GLdouble GLdouble GLdouble r
std::string unitsFormat(const double val, int nDecimalDigits=2, bool middle_space=true)
This function implements formatting with the appropriate SI metric unit prefix: 1e-12->'p', 1e-9->'n', 1e-6->'u', 1e-3->'m', 1->'', 1e3->'K', 1e6->'M', 1e9->'G', 1e12->'T'.
std::vector< uint16_t > vector_word
std::string upperCase(const std::string &str)
Returns a upper-case version of a string.
GLenum GLenum GLenum input
bool strStarts(const std::string &str, const std::string &subStr)
Return true if "str" starts with "subStr" (case sensitive)
std::string trim(const std::string &str)
Removes leading and trailing spaces.
std::string rightPad(const std::string &str, const size_t total_len, bool truncate_if_larger=false)
Enlarge the string with spaces up to the given length.
GLuint GLenum GLenum transform
bool strCmpI(const std::string &s1, const std::string &s2)
Return true if the two strings are equal (case insensitive)
int _strcmp(const char *str1, const char *str2) noexcept
An OS-independent version of strcmp.
int _strcmpi(const char *str1, const char *str2) noexcept
An OS-independent version of strcmpi.