]> git.itanic.dy.fi Git - rrdd/commitdiff
string: Add functions to skip numbers and non-numbers
authorTimo Kokkonen <kaapeli@itanic.dy.fi>
Sun, 3 Apr 2011 09:20:10 +0000 (12:20 +0300)
committerTimo Kokkonen <kaapeli@itanic.dy.fi>
Sun, 3 Apr 2011 09:20:10 +0000 (12:20 +0300)
Signed-off-by: Timo Kokkonen <kaapeli@itanic.dy.fi>
string.c
string.h

index 206cd687f34265b2efe06cfced707e50bf840b7f..a82bc02c5c7327b3b030d636d5a55ab4d08a78c6 100644 (file)
--- a/string.c
+++ b/string.c
@@ -4,8 +4,7 @@ int dec_to_int(char *src, char **dst)
 {
        int ret;
 
-       while(((*src < '0') || (*src > '9')) && *src)
-               src++;
+       src = skip_non_numbers(src);
 
        ret = atoi(src);
 
@@ -22,8 +21,7 @@ long long dec_to_longlong(char *src, char **dst)
 {
        long long ret;
 
-       while(((*src < '0') || (*src > '9')) && *src)
-               src++;
+       src = skip_non_numbers(src);
 
        ret = atoll(src);
 
@@ -40,8 +38,7 @@ float dec_to_float(char *src, char **dst)
 {
        float ret;
 
-       while(((*src < '0') || (*src > '9')) && *src)
-               src++;
+       src = skip_non_numbers(src);
 
        ret = atof(src);
 
index a015e43b4bf09683b33f4e082864ee2792aeddcc..377e4392dea8c9be31ca7d45b9603aa6e047d8af 100644 (file)
--- a/string.h
+++ b/string.h
@@ -9,4 +9,20 @@ long long dec_to_longlong(char *src, char **dst);
 float dec_to_float(char *src, char **dst);
 int get_word(char *src, char **dst, char *word, int size);
 
+static inline char *skip_non_numbers(char *str)
+{
+       while(((*str < '0') || (*str > '9')) && *str)
+               str++;
+
+       return str;
+}
+
+static inline char *skip_numbers(char *str)
+{
+       while((*str >= '0') && (*str <= '9'))
+               str++;
+
+       return str;
+}
+
 #endif