32 return isdigit (*i) || (*i ==
'-' && isdigit (i[1]));
44 while (isdigit (*++i)) ;
79 const char* d_a = NULL;
80 const char* d_b = NULL;
82 for (;*a && *b; ++a, ++b) {
89 while (*d_a ==
'0') {
if (d_a[1] && isdigit (d_a[1])) { ++d_a; }
else {
break; } }
90 while (*d_b ==
'0') {
if (d_b[1] && isdigit (d_b[1])) { ++d_b; }
else {
break; } }
113 if (*a) {
return false; }
114 if (*b) {
return true; }
121 const char* d_a = NULL;
122 const char* d_b = NULL;
124 for (;*a && *b; ++a, ++b) {
125 if (isdigit (*a) && isdigit (*b) && !d_a) {
130 const int ia =
atoi (d_a);
131 const int ib =
atoi (d_b);
133 return ia < ib ? -1 : 1;
143 if (*a ==
'_' && *b ==
' ') {
146 if (*b ==
'_' && *a ==
' ') {
150 return ' ' < *b ? -1 : 1;
151 }
else if (*b ==
'_') {
152 return *a <
' ' ? -1 : 1;
155 return *a < *b ? -1 : 1;
159 const int ia =
atoi (d_a);
160 const int ib =
atoi (d_b);
162 return ia < ib ? -1 : 1;
169 if (*a) {
return 1; }
170 if (*b) {
return -1; }
183 const char* cstr_a = a.c_str();
184 const char* cstr_b = b.c_str();
bool naturally_less(const char *a, const char *b)
int atoi(const std::string &)
int natcmp(const char *a, const char *b)
int64_t order_of_magnitude(const char *i)
bool numerically_less(const char *a, const char *b)
bool is_integer(const char *i)