#include "string-convert.hh"
+#include <publib.h>
#include <cstring>
#include <cstdio>
using namespace std;
*/
static const int STRING_BUFFER_LEN = 1024;
-Std_string
+std::string
String_convert::bool_string (bool b)
{
- return Std_string (b ? "true" : "false");
+ return std::string (b ? "true" : "false");
}
-Std_string
-String_convert::bin2hex (Std_string bin_string)
+std::string
+String_convert::bin2hex (std::string bin_string)
{
- Std_string str;
+ std::string str;
Byte const *byte = (Byte const*)bin_string.data ();
for (ssize i = 0; i < bin_string.length (); i++)
{
}
int
-String_convert::bin2int (Std_string bin_string)
+String_convert::bin2int (std::string bin_string)
{
return bin2unsigned (bin_string);
}
unsigned
-String_convert::bin2unsigned (Std_string bin_string)
+String_convert::bin2unsigned (std::string bin_string)
{
assert (bin_string.length () <= (int)sizeof (unsigned));
return result_u;
}
-// breendet imp from Std_string
+// breendet imp from std::string
int
-String_convert::dec2int (Std_string dec_string)
+String_convert::dec2int (std::string dec_string)
{
if (!dec_string.length ())
return 0;
return (int)l;
}
-Std_string
+std::string
String_convert::i64_string (I64 i64, char const *fmt)
{
char buffer[STRING_BUFFER_LEN];
snprintf (buffer, STRING_BUFFER_LEN,
(fmt ? fmt : "%Ld"), i64); // assume radix 10
- return Std_string (buffer);
+ return std::string (buffer);
}
-// breendet imp from Std_string
+// breendet imp from std::string
double
-String_convert::dec2double (Std_string dec_string)
+String_convert::dec2double (std::string dec_string)
{
if (!dec_string.length ())
return 0;
}
int
-String_convert::hex2bin (Std_string hex_string, Std_string &bin_string_r)
+String_convert::hex2bin (std::string hex_string, std::string &bin_string_r)
{
if (hex_string.length () % 2)
hex_string = "0" + hex_string;
return 0;
}
-Std_string
-String_convert::hex2bin (Std_string hex_string)
+std::string
+String_convert::hex2bin (std::string hex_string)
{
- Std_string str;
+ std::string str;
// silly, asserts should alway be "on"!
// assert (!hex2bin (hex_string, str) );
int error_i = hex2bin (hex_string, str);
}
// stupido. Should use int_string ()
-Std_string
+std::string
String_convert::int2dec (int i, int length_i, char ch)
{
char fill_char = ch;
fill_char = '0';
// ugh
- Std_string dec_string = to_string (i);
+ std::string dec_string = to_string (i);
// ugh
return to_string (fill_char, length_i - dec_string.length ()) + dec_string;
}
// stupido. Should use int_string ()
-Std_string
+std::string
String_convert::unsigned2hex (unsigned u, ssize length, char fill_char)
{
- Std_string str;
+ std::string str;
if (!u)
str = "0";
return str;
}
-Std_string
+std::string
String_convert::int2hex (int i, int length_i, char fill_char)
{
return unsigned2hex ((unsigned)i, length_i, fill_char);
@param
#fmt# is a printf style format, default assumes "%d" as format.
*/
-Std_string
+std::string
String_convert::int_string (int i, char const *fmt)
{
char buffer[STRING_BUFFER_LEN];
snprintf (buffer, STRING_BUFFER_LEN,
(fmt ? fmt : "%d"), i); // assume radix 10
- return Std_string (buffer);
+ return std::string (buffer);
}
-Std_string
+std::string
String_convert::form_string (char const *format, ...)
{
va_list args;
char buffer[STRING_BUFFER_LEN];
vsnprintf (buffer, STRING_BUFFER_LEN, format, args);
va_end (args);
- return Std_string (buffer);
+ return std::string (buffer);
}
-Std_string
+std::string
String_convert::vform_string (char const *format, va_list args)
{
char buffer[STRING_BUFFER_LEN];
vsnprintf (buffer, STRING_BUFFER_LEN, format, args);
- return Std_string (buffer);
+ return std::string (buffer);
}
/**
@param #fmt# is a printf style format, default assumes "%lf" as format
*/
-Std_string
+std::string
String_convert::double_string (double f, char const *fmt)
{
char buf[STRING_BUFFER_LEN];
snprintf (buf, STRING_BUFFER_LEN, fmt ? fmt : "%f", f);
- return Std_string (buf);
+ return std::string (buf);
}
/**
@param
#n# is a repetition count, default value is 1
*/
-Std_string
+std::string
String_convert::char_string (char c, int n)
{
n = n >= 0 ? n : 0;
char *ch = new char[ n ];
memset (ch, c, n);
#if STD_STRING
- Std_string s (ch, n);
+ std::string s (ch, n);
#else
- Std_string s ((Byte*) ch, n);
+ std::string s (ch, n);
#endif
delete[] ch;
return s;
}
-Std_string
+std::string
String_convert::rational_string (Rational r)
{
return r.to_string ();
}
-Std_string
+std::string
String_convert::pointer_string (void const *l)
{
char buffer[STRING_BUFFER_LEN];
snprintf (buffer, STRING_BUFFER_LEN, "%p", l); // assume radix 10
- return Std_string (buffer);
+ return std::string (buffer);
}
/**
@param
#n# is the number of nonzero digits
*/
-Std_string
+std::string
String_convert::precision_string (double x, int n)
{
- Std_string format = "%." + to_string (max (0, n - 1)) + "e";
- Std_string str = double_string (abs (x), format.c_str ());
+ std::string format = "%." + to_string (max (0, n - 1)) + "e";
+ std::string str = double_string (abs (x), format.c_str ());
int exp = dec2int (str.substr (str.length () - 3));
str = str.substr (0, str.length () - 4);
return (sign (x) > 0 ? str : "-" + str);
}
-Array<Std_string>
-String_convert::split (Std_string str, char c)
+Array<std::string>
+String_convert::split (std::string str, char c)
{
- Array<Std_string> a;
+ Array<std::string> a;
ssize i = str.find (c);
while (i != NPOS)
{
- Std_string s = str.substr (0, i);
+ std::string s = str.substr (0, i);
a.push (s);
while (str[++i] == c)
;
return a;
}
-Std_string
+std::string
String_convert::long_string (long l)
{
char s[STRING_BUFFER_LEN];
return s;
}
-Std_string
-String_convert::pad_to (Std_string s, int n)
+std::string
+String_convert::pad_to (std::string s, int n)
{
- return s + Std_string (max (int(n - s.length ()), 0), ' ');
+ return s + std::string (max (int(n - s.length ()), 0), ' ');
+}
+
+std::string
+String_convert::to_upper (std::string s)
+{
+ return strnupr ((char *)s.c_str (), s.length ());
+}
+
+std::string
+String_convert::to_lower (std::string s)
+{
+ return strnlwr ((char *)s.c_str (), s.length ());
+}
+
+std::string
+String_convert::reverse (std::string s)
+{
+ return (char*) memrev ((unsigned char *)s.data (), s.length ());
}