70 lines
1.3 KiB
C++
70 lines
1.3 KiB
C++
|
#include "convert.h"
|
||
|
|
||
|
std::wstring toLowerCase(const std::wstring &s)
|
||
|
{
|
||
|
std::wstring res;
|
||
|
|
||
|
int len = s.length();
|
||
|
for (int i = 0; i < len; i++)
|
||
|
res += (wchar_t)towlower(s[i]);
|
||
|
|
||
|
return res;
|
||
|
}
|
||
|
|
||
|
std::wstring toUpperCase(const std::wstring &s)
|
||
|
{
|
||
|
std::wstring res;
|
||
|
|
||
|
int len = s.length();
|
||
|
for (int i = 0; i < len; i++)
|
||
|
res += (wchar_t)towupper(s[i]);
|
||
|
|
||
|
return res;
|
||
|
}
|
||
|
|
||
|
std::wstring numToStr(int num)
|
||
|
{
|
||
|
wchar_t buf[30];
|
||
|
#ifdef WIN32
|
||
|
swprintf(buf, L"%i", num);
|
||
|
#else
|
||
|
swprintf(buf, 29, L"%i", num);
|
||
|
#endif
|
||
|
buf[29] = 0;
|
||
|
return std::wstring(buf);
|
||
|
}
|
||
|
|
||
|
std::wstring numToStr(unsigned int num)
|
||
|
{
|
||
|
wchar_t buf[30];
|
||
|
#ifdef WIN32
|
||
|
swprintf(buf, L"%u", num);
|
||
|
#else
|
||
|
swprintf(buf, 29, L"%i", num);
|
||
|
#endif
|
||
|
buf[29] = 0;
|
||
|
return std::wstring(buf);
|
||
|
}
|
||
|
|
||
|
int strToInt(const std::wstring &str)
|
||
|
{
|
||
|
int n;
|
||
|
wchar_t *endptr;
|
||
|
|
||
|
n = wcstol(str.c_str(), &endptr, 10);
|
||
|
if ((! str.c_str()[0]) || (endptr[0]))
|
||
|
throw Exception(L"Invalid integer '" + str + L"'");
|
||
|
return n;
|
||
|
}
|
||
|
|
||
|
double strToDouble(const std::wstring &str)
|
||
|
{
|
||
|
double n;
|
||
|
wchar_t *endptr;
|
||
|
|
||
|
n = wcstod(str.c_str(), &endptr);
|
||
|
if ((! str.c_str()[0]) || (endptr[0]))
|
||
|
throw Exception(L"Invalid double '" + str + L"'");
|
||
|
return n;
|
||
|
}
|