diff options
-rw-r--r-- | include/str.h | 2 | ||||
-rw-r--r-- | lib/str.c | 27 |
2 files changed, 29 insertions, 0 deletions
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 @@ -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; +} + |