summaryrefslogtreecommitdiff
path: root/src/utils
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/string.c18
-rw-r--r--src/utils/string.h7
2 files changed, 23 insertions, 2 deletions
diff --git a/src/utils/string.c b/src/utils/string.c
index 81be415..e01d1b6 100644
--- a/src/utils/string.c
+++ b/src/utils/string.c
@@ -1,5 +1,6 @@
#include "string.h"
+#include <stdint.h>
#include <string.h>
size_t searchInStringArray(const char *array[], size_t array_size,
@@ -12,3 +13,20 @@ size_t searchInStringArray(const char *array[], size_t array_size,
}
return array_size;
}
+
+uint64_t decimalToU64(char *str_begin, char *str_end, bool *success) {
+ uint64_t result = 0;
+
+ while (str_begin < str_end) {
+ if (*str_begin < '0' || *str_begin > '9') {
+ *success = false;
+ return 0;
+ }
+ result *= 10;
+ result += *str_begin - '0';
+ str_begin += 1;
+ }
+
+ *success = true;
+ return result;
+}
diff --git a/src/utils/string.h b/src/utils/string.h
index 79af8a9..7d0a5c8 100644
--- a/src/utils/string.h
+++ b/src/utils/string.h
@@ -1,6 +1,9 @@
#pragma once
#include <stddef.h>
+#include <stdint.h>
-size_t searchInStringArray(const char *array[], size_t array_size, const char *str,
- size_t str_size);
+size_t searchInStringArray(const char *array[], size_t array_size,
+ const char *str, size_t str_size);
+
+uint64_t decimalToU64(char *str_begin, char *str_end, bool *success);