diff options
Diffstat (limited to 'src/StringUtils.cpp')
-rw-r--r-- | src/StringUtils.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/StringUtils.cpp b/src/StringUtils.cpp index 9820d29..5dfeca9 100644 --- a/src/StringUtils.cpp +++ b/src/StringUtils.cpp @@ -129,4 +129,24 @@ namespace QuickMedia { ++str2; } } + + bool to_num(const char *str, size_t size, int &num) { + size_t i = 0; + const bool is_negative = size > 0 && str[0] == '-'; + if(is_negative) + i = 1; + + num = 0; + for(; i < size; ++i) { + const char num_c = str[i] - '0'; + if(num_c < 0 || num_c > 9) + return false; + num = (num * 10) + num_c; + } + + if(is_negative) + num = -num; + + return true; + } }
\ No newline at end of file |