1 /* $NetBSD: alldig.c,v 1.4 2026/05/09 18:49:22 christos Exp $ */ 2 3 /*++ 4 /* NAME 5 /* alldig 3 6 /* SUMMARY 7 /* predicate if string is all numerical 8 /* SYNOPSIS 9 /* #include <stringops.h> 10 /* 11 /* int alldig(string) 12 /* const char *string; 13 /* 14 /* int allalnum(string) 15 /* const char *string; 16 /* 17 /* int allalnumus(string) 18 /* const char *string; 19 /* DESCRIPTION 20 /* alldig() determines if its argument is an all-numerical string. 21 /* 22 /* allalnum() determines if its argument is an all-alphanumerical 23 /* string. 24 /* 25 /* allalnumus() determines if its argument is an all-(alphanumerical 26 /* or underscore) string. 27 /* SEE ALSO 28 /* An alldig() routine appears in Brian W. Kernighan, P.J. Plauger: 29 /* "Software Tools", Addison-Wesley 1976. 30 /* LICENSE 31 /* .ad 32 /* .fi 33 /* The Secure Mailer license must be distributed with this software. 34 /* AUTHOR(S) 35 /* Wietse Venema 36 /* IBM T.J. Watson Research 37 /* P.O. Box 704 38 /* Yorktown Heights, NY 10598, USA 39 /* 40 /* Wietse Venema 41 /* Google, Inc. 42 /* 111 8th Avenue 43 /* New York, NY 10011, USA 44 /* 45 /* Wietse Venema 46 /* porcupine.org 47 /*--*/ 48 49 /* System library. */ 50 51 #include <sys_defs.h> 52 #include <ctype.h> 53 54 /* Utility library. */ 55 56 #include <stringops.h> 57 58 /* alldig - return true if string is all digits */ 59 60 int alldig(const char *string) 61 { 62 const char *cp; 63 64 if (*string == 0) 65 return (0); 66 for (cp = string; *cp != 0; cp++) 67 if (!ISDIGIT(*cp)) 68 return (0); 69 return (1); 70 } 71 72 /* allalnum - return true if string is all alphanum */ 73 74 int allalnum(const char *string) 75 { 76 const char *cp; 77 78 if (*string == 0) 79 return (0); 80 for (cp = string; *cp != 0; cp++) 81 if (!ISALNUM(*cp)) 82 return (0); 83 return (1); 84 } 85 86 /* allalnumus - return true if string is all (alphanum or underscore) */ 87 88 int allalnumus(const char *string) 89 { 90 const char *cp; 91 int ch; 92 93 if (*string == 0) 94 return (0); 95 for (cp = string; (ch = *cp) != 0; cp++) 96 if (!ISALNUM(ch) && ch != '_') 97 return (0); 98 return (1); 99 } 100