1 #ifndef OSMSCOUT_UTIL_STRING_H 2 #define OSMSCOUT_UTIL_STRING_H 29 #include <osmscout/CoreFeatures.h> 95 if (std::numeric_limits<N>::is_signed) {
116 std::string::size_type pos=0;
121 if (
string.empty()) {
128 if (
base==10 &&
string[0]==
'-') {
140 if (digitValue>=
base) {
147 if (digitValue==
base-1 &&
148 string.length()==
NumberDigits(std::numeric_limits<N>::max())) {
153 number=(N)digitValue;
159 while (pos<
string.length()) {
166 if (digitValue>=
base) {
170 if (std::numeric_limits<N>::max()/(N)
base-(N)digitValue<number) {
174 number=(N)(number*
base+digitValue);
193 std::string::size_type pos=0;
197 if (
string.empty()) {
201 if (
string[0]==
'-') {
214 if (digitValue>=
base) {
218 number=(N)digitValue;
222 while (pos<
string.length()) {
230 if (digitValue>=
base) {
234 if (std::numeric_limits<N>::max()/(N)
base-(N)digitValue<number) {
238 number=(N)(number*
base+digitValue);
246 template<
bool is_
signed,
typename N>
254 static inline bool f(
const std::string&
string,
258 return StringToNumberSigned<N>(string,number,
base);
265 static inline bool f(
const std::string&
string,
269 return StringToNumberUnsigned<N>(string,number,
base);
287 ::f(
string,number,
base);
323 const std::string& separator,
338 const std::string& divider);
345 std::list<std::string>& tokens);
372 std::list<std::list<std::string> >& lists);
OSMSCOUT_API std::string UTF8NormForLookup(const std::string &text)
std::chrono::system_clock::time_point Timestamp
Definition: Time.h:27
OSMSCOUT_API bool GetDigitValue(char digit, size_t &result)
OSMSCOUT_API std::wstring LocaleStringToWString(const std::string &text)
OSMSCOUT_API std::string WStringToLocaleString(const std::wstring &text)
bool StringToNumber(const std::string &string, N &number, size_t base=10)
Definition: String.h:282
OSMSCOUT_API void GroupStringListToStrings(std::list< std::string >::const_iterator token, size_t listSize, size_t parts, std::list< std::list< std::string > > &lists)
OSMSCOUT_API std::list< std::string > SplitString(const std::string &stringList, const std::string &separator, int maxSize=-1)
OSMSCOUT_API std::string ByteSizeToString(FileOffset size)
static bool f(const std::string &string, N &number, size_t base=10)
Definition: String.h:254
OSMSCOUT_API std::string GetTokensFromEnd(const std::list< std::string > &tokens, size_t count)
OSMSCOUT_API bool ParseISO8601TimeString(const std::string &timeStr, Timestamp ×tamp)
OSMSCOUT_API std::list< std::string > SplitStringAtSpace(const std::string &input)
OSMSCOUT_API void SimplifyTokenList(std::list< std::string > &tokens)
OSMSCOUT_API std::string GetFirstInStringList(const std::string &stringList, const std::string ÷r)
OSMSCOUT_API std::string UTF8Transliterate(const std::string &text)
OSMSCOUT_API std::string DurationString(const Duration &duration)
bool StringToNumberUnsigned(const std::string &string, N &number, size_t base=10)
Definition: String.h:187
OSMSCOUT_API bool StringToBool(const char *string, bool &value)
OSMSCOUT_API std::string UTF8StringToUpper(const std::string &text)
#define OSMSCOUT_API
Definition: CoreImportExport.h:45
OSMSCOUT_API std::string LocaleStringToUTF8String(const std::string &text)
OSMSCOUT_API std::string TimestampToISO8601TimeString(const Timestamp ×tamp)
OSMSCOUT_API std::string WStringToUTF8String(const std::wstring &text)
bool StringToNumberSigned(const std::string &string, N &number, size_t base=10)
Definition: String.h:110
static bool f(const std::string &string, N &number, size_t base=10)
Definition: String.h:265
OSMSCOUT_API std::string GetTokensFromStart(const std::list< std::string > &tokens, size_t count)
OSMSCOUT_API std::string UTF8StringToLower(const std::string &text)
OSMSCOUT_API void TokenizeString(const std::string &input, std::list< std::string > &tokens)
OSMSCOUT_API size_t CountWords(const std::string &text)
size_t NumberDigits(const N &number, size_t base=10)
Definition: String.h:89
OSMSCOUT_API std::string UTF8StringToLocaleString(const std::string &text)
uint64_t FileOffset
Definition: OSMScoutTypes.h:47
OSMSCOUT_API const char * BoolToString(bool value)
Timestamp::duration Duration
Definition: Time.h:29
OSMSCOUT_API std::u32string UTF8StringToU32String(const std::string &text)
OSMSCOUT_API std::wstring UTF8StringToWString(const std::string &text)
OSMSCOUT_API std::string NumberToString(long value, const Locale &locale)