From e1a47b385cb93c1b0cc759604ad06b7bdd48f15b Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Sun, 24 May 2020 10:49:34 -0400 Subject: Add string functions: * isdigit_s() * tolower_s() --- include/str.h | 2 ++ lib/str.c | 27 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/include/str.h b/include/str.h index 468f674..ae54997 100644 --- a/include/str.h +++ b/include/str.h @@ -34,5 +34,7 @@ int isquoted(char *sptr); char *normalize_space(char *s); char **strdup_array(char **array); int strcmp_array(const char **a, const char **b); +int isdigit_s(char *s); +char *tolower_s(char *s); #endif //SPM_STR_H diff --git a/lib/str.c b/lib/str.c index 9b5b201..5fbb8ad 100644 --- a/lib/str.c +++ b/lib/str.c @@ -817,3 +817,30 @@ int strcmp_array(const char **a, const char **b) { } return result; } + +/** + * Determine whether a string is comprised of digits + * @param s + * @return 0=no, 1=yes + */ +int isdigit_s(char *s) { + for (size_t i = 0; s[i] != '\0'; i++) { + if (isdigit(s[i]) == 0) { + return 0; // non-digit found, fail + } + } + return 1; // all digits, succeed +} + +/** + * Convert input string to lowercase + * @param s + * @return pointer to input string + */ +char *tolower_s(char *s) { + for (size_t i = 0; s[i] != '\0'; i++) { + s[i] = (char)tolower(s[i]); + } + return s; +} + -- cgit