# islower

## PROLOG



           This manual page is part of the POSIX Programmer's Manual.  The
           Linux implementation of this interface may differ (consult the
           corresponding Linux manual page for details of Linux behavior), or
           the interface may not be implemented on Linux.
    


## NAME



           islower, islower_l — test for a lowercase letter
    


## SYNOPSIS



           #include <ctype.h>
    
           int islower(int _c_);
           int islower_l(int _c_ , locale_t _locale_);
    


## DESCRIPTION



           For _islower_(): The functionality described on this reference page
           is aligned with the ISO C standard. Any conflict between the
           requirements described here and the ISO C standard is
           unintentional. This volume of POSIX.1‐2017 defers to the ISO C
           standard.
    
           The _islower_() and _islower_l_() functions shall test whether _c_ is a
           character of class **lower** in the current locale, or in the locale
           represented by _locale_ , respectively; see the Base Definitions
           volume of POSIX.1‐2017, _Chapter 7_ , _Locale_.
    
           The _c_ argument is an **int** , the value of which the application shall
           ensure is a character representable as an **unsigned char** or equal
           to the value of the macro EOF. If the argument has any other
           value, the behavior is undefined.
    
           The behavior is undefined if the _locale_ argument to _islower_l_() is
           the special locale object LC_GLOBAL_LOCALE or is not a valid
           locale object handle.
    


## RETURN VALUE



           The _islower_() and _islower_l_() functions shall return non-zero if _c_
           is a lowercase letter; otherwise, they shall return 0.
    


## ERRORS



           No errors are defined.
    
           _The following sections are informative._
    


## EXAMPLES



       **Testing for a Lowercase Letter**
           Two examples follow, the first using _islower_(), the second using
           multiple concurrent locales and _islower_l_().
    
           The examples test whether the value is a lowercase letter, based
           on the current locale, then use it as part of a key value.
    
               /* Example 1 -- using islower() */
               #include <ctype.h>
               #include <stdlib.h>
               #include <locale.h>
               ...
               char *keystr;
               int elementlen, len;
               unsigned char c;
               ...
               setlocale(LC_ALL, "");
               ...
               len = 0;
               while (len < elementlen) {
                   c = (unsigned char) (rand() % 256);
               ...
                   if (islower(c))
                       keystr[len++] = c;
                   }
               ...
    
               /* Example 2 -- using islower_l() */
               #include <ctype.h>
               #include <stdlib.h>
               #include <locale.h>
               ...
               char *keystr;
               int elementlen, len;
               unsigned char c;
               ...
               locale_t loc = newlocale (LC_ALL_MASK, "", (locale_t) 0);
               ...
               len = 0;
               while (len < elementlen) {
                   c = (unsigned char) (rand() % 256);
               ...
                   if (islower_l(c, loc))
                       keystr[len++] = c;
                   }
               ...
    


## APPLICATION USAGE



           To ensure applications portability, especially across natural
           languages, only these functions and the functions in the reference
           pages listed in the SEE ALSO section should be used for character
           classification.
    


## RATIONALE



           None.
    


## FUTURE DIRECTIONS



           None.
    


* * *