#include <rudiments/charstring.h>
#include <rudiments/stdio.h>
int main(int argc, const char **argv) {
// conversion of numbers to strings...
char *intstr=charstring::parseNumber((uint64_t)12345);
char *floatstr=charstring::parseNumber((float)12.345,5,3);
stdoutput.printf("numbers as strings: %s, %s\n",intstr,floatstr);
stdoutput.write('\n');
delete[] intstr;
delete[] floatstr;
// conversion of strings to numbers...
int64_t intnum=charstring::toInteger("12345");
uint64_t uintnum=charstring::toUnsignedInteger("12345");
long double floatnum=charstring::toFloat("12.345");
stdoutput.printf("strings as numbers: %lld, %lld, %5.3Lf\n",
intnum,uintnum,floatnum);
stdoutput.write('\n');
// identification of numeric strings...
const char * const numbers[]={
"1","-1","1.1","-1.1","one","hello",NULL
};
for (const char * const *n=numbers; *n; n++) {
stdoutput.printf("%s %s a number\n",*n,
(charstring::isNumber(*n))?"is":"is not");
stdoutput.printf("%s %s an integer\n",*n,
(charstring::isInteger(*n))?"is":"is not");
}
stdoutput.write('\n');
// integer lengths
uint64_t integers[]={
1,23,456,7890,12345,678901,0
};
for (uint64_t *i=integers; *i; i++) {
stdoutput.printf("it would take %d bytes to store "
"%lld as a string\n",
charstring::integerLength(*i),*i);
}
stdoutput.write('\n');
// dollar amounts
const char dollarstr[]="$123.45";
int64_t pennies=charstring::convertAmount(dollarstr);
char *dollars=charstring::convertAmount(pennies);
stdoutput.printf("%s as pennies: %lld\n",dollarstr,pennies);
stdoutput.printf("%lld pennies as dollars: %s\n",pennies,dollars);
}