<<< Previous | Home | Next >>>

The Open Group Base Specifications Issue 7
IEEE Std 1003.1-2008
Copyright © 2001-2008 The IEEE and The Open Group

#### NAME

> islower, islower_l - test for a lowercase letter

#### SYNOPSIS

> ``#include <ctype.h>
> int islower(int` c`);
> ``

> ``[CX] int islower_l(int` c`, locale_t` locale`);``
> `
> `

#### DESCRIPTION

> For islower(): [CX] 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-2008 defers to the ISO C standard.

> The islower() [CX] and islower_l() functions shall test whether c is a character of class lower in the current locale of the process, [CX] or in the locale represented by locale, respectively; see XBD 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.

#### RETURN VALUE

> The islower() [CX] and islower_l() functions shall return non-zero if c is a lowercase letter; otherwise, they shall return 0.

#### ERRORS

> The islower_l() function may fail if:

> [EINVAL]
>   [CX] locale is not a valid locale object handle.

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 locale of the user, 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;
>     char c;
>     ...
>     setlocale(LC_ALL, "");
>     ...
>     len = 0;
>     while (len < elementlen) {
>         c = (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;
>     char c;
>     ...
>     locale_t loc = newlocale (LC_ALL_MASK, "", (locale_t) 0);
>     ...
>     len = 0;
>     while (len < elementlen) {
>         c = (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.

#### SEE ALSO

> isalnum , isalpha , isblank , iscntrl , isdigit , isgraph , isprint , ispunct , isspace , isupper , isxdigit , setlocale , uselocale

> XBD Locale , <ctype.h> , <locale.h>

#### CHANGE HISTORY

> First released in Issue 1. Derived from Issue 1 of the SVID.

#### Issue 6

> The normative text is updated to avoid use of the term "must" for application requirements.

> An example is added.

#### Issue 7

> The islower_l() function is added from The Open Group Technical Standard, 2006, Extended API Set Part 4.

End of informative text.

return to top of page

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
Copyright © 2001-2008 The IEEE and The Open Group, All Rights Reserved
[ Main Index | XBD | XSH | XCU | XRAT ]

<<< Previous | Home | Next >>>