From 5842197142ab9537c9f27547eaa612e05d401097 Mon Sep 17 00:00:00 2001 From: herbglitch Date: Fri, 11 Oct 2024 03:57:32 -0600 Subject: [PATCH] added number checking to string --- include/arc/std/string.h | 13 +++++++++++-- src/std/string.c | 17 ++++++++++++++--- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/include/arc/std/string.h b/include/arc/std/string.h index fc1b281..56d36eb 100644 --- a/include/arc/std/string.h +++ b/include/arc/std/string.h @@ -176,9 +176,18 @@ ARC_Bool ARC_String_SubstringEqualsCString(ARC_String *string, uint64_t offset, * * @param string string to check * - * @return 1 if alphabetic, 0 if not alphabetic + * @return ARC_True if alphabetic, ARC_False if not alphabetic */ -uint8_t ARC_String_Alpha(ARC_String *string); +ARC_Bool ARC_String_IsAlpha(ARC_String *string); + +/** + * @brief checks if string is made out of only numbers + * + * @param string string to check + * + * @return ARC_True if it is numeric, ARC_False if it is not numeric + */ +ARC_Bool ARC_String_IsNumeric(ARC_String *string); /** * @brief converst substring from string to uint64_t diff --git a/src/std/string.c b/src/std/string.c index 310ccc8..d03e911 100644 --- a/src/std/string.c +++ b/src/std/string.c @@ -173,7 +173,8 @@ ARC_Bool ARC_String_SubstringEqualsCString(ARC_String *string, uint64_t offset, return ARC_True; } -uint8_t ARC_String_Alpha(ARC_String *string){ +//TODO: fix this +ARC_Bool ARC_String_IsAlpha(ARC_String *string){ for(uint64_t length = string->length; length; length--){ if(string->data[length - 1] >= 'a' && string->data[length - 1] <= 'z'){ continue; @@ -183,10 +184,20 @@ uint8_t ARC_String_Alpha(ARC_String *string){ continue; } - return 1; + return ARC_True; } - return 0; + return ARC_False; +} + +ARC_Bool ARC_String_IsNumeric(ARC_String *string){ + for(uint64_t index = 0; index < string->length; index++){ + if(string->data[index] < '0' || string->data[index] > '9'){ + return ARC_False; + } + } + + return ARC_True; } uint64_t ARC_String_ToUint64_t(ARC_String *string){