| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- // Common/StringToInt.cpp
- #include "StdAfx.h"
- #include "StringToInt.h"
- UInt64 ConvertStringToUInt64(const char *s, const char **end)
- {
- UInt64 result = 0;
- for (;;)
- {
- char c = *s;
- if (c < '0' || c > '9')
- {
- if (end != NULL)
- *end = s;
- return result;
- }
- result *= 10;
- result += (c - '0');
- s++;
- }
- }
- UInt64 ConvertOctStringToUInt64(const char *s, const char **end)
- {
- UInt64 result = 0;
- for (;;)
- {
- char c = *s;
- if (c < '0' || c > '7')
- {
- if (end != NULL)
- *end = s;
- return result;
- }
- result <<= 3;
- result += (c - '0');
- s++;
- }
- }
- UInt64 ConvertStringToUInt64(const wchar_t *s, const wchar_t **end)
- {
- UInt64 result = 0;
- for (;;)
- {
- wchar_t c = *s;
- if (c < '0' || c > '9')
- {
- if (end != NULL)
- *end = s;
- return result;
- }
- result *= 10;
- result += (c - '0');
- s++;
- }
- }
- Int64 ConvertStringToInt64(const char *s, const char **end)
- {
- if (*s == '-')
- return -(Int64)ConvertStringToUInt64(s + 1, end);
- return ConvertStringToUInt64(s, end);
- }
|