_strlwr, _wcslwr, _mbslwr, _strlwr_l, _wcslwr_l, _mbslwr_l
Convert a string to lowercase. More secure versions of these functions are available; see _strlwr_s, _strlwr_s_l, _mbslwr_s, _mbslwr_s_l, _wcslwr_s, _wcslwr_s_l.
Important
|
|---|
|
_mbslwr and _mbslwr_l cannot be used in applications that execute in the Windows Runtime. For more information, see CRT functions not supported with /ZW. |
char *_strlwr( char * str ); wchar_t *_wcslwr( wchar_t * str ); unsigned char *_mbslwr( unsigned char * str ); char *_strlwr_l( char * str, _locale_t locale ); wchar_t *_wcslwr_l( wchar_t * str, _locale_t locale ); unsigned char *_mbslwr_l( unsigned char * str, _locale_t locale ); template <size_t size> char *_strlwr( char (&str)[size] ); // C++ only template <size_t size> wchar_t *_wcslwr( wchar_t (&str)[size] ); // C++ only template <size_t size> unsigned char *_mbslwr( unsigned char (&str)[size] ); // C++ only template <size_t size> char *_strlwr_l( char (&str)[size], _locale_t locale ); // C++ only template <size_t size> wchar_t *_wcslwr_l( wchar_t (&str)[size], _locale_t locale ); // C++ only template <size_t size> unsigned char *_mbslwr_l( unsigned char (&str)[size], _locale_t locale ); // C++ only
The _strlwr function converts any uppercase letters in str to lowercase as determined by the LC_CTYPE category setting of the locale. Other characters are not affected. For more information on LC_CTYPE, see setlocale. The versions of these functions without the_l suffix use the current locale for their locale-dependent behavior; the versions with the _l suffix are identical except that they use the locale passed in instead. For more information, see Locale.
The _wcslwr and _mbslwr functions are wide-character and multibyte-character versions of _strlwr. The argument and return value of _wcslwr are wide-character strings; those of _mbslwr are multibyte-character strings. These three functions behave identically otherwise.
If str is a NULL pointer, the invalid parameter handler is invoked, as described in Parameter Validation . If execution is allowed to continue, these functions return the original string and set errno to EINVAL.
In C++, these functions have template overloads that invoke the newer, secure counterparts of these functions. For more information, see Secure Template Overloads.
|
TCHAR.H routine |
_UNICODE & _MBCS not defined |
_MBCS defined |
_UNICODE defined |
|---|---|---|---|
|
_tcslwr |
_strlwr |
_mbslwr |
_wcslwr |
|
_tcslwr_l |
_strlwr_l |
_mbslwr_l |
_wcslwr_l |
|
Routine |
Required header |
|---|---|
|
_strlwr , _strlwr_l |
<string.h> |
|
_wcslwr , _wcslwr_l |
<string.h> or <wchar.h> |
|
_mbslwr , _mbslwr_l |
<mbstring.h> |
For additional compatibility information, see Compatibility in the Introduction.
// crt_strlwr.c
// compile with: /W3
// This program uses _strlwr and _strupr to create
// uppercase and lowercase copies of a mixed-case string.
#include <string.h>
#include <stdio.h>
int main( void )
{
char string[100] = "The String to End All Strings!";
char * copy1 = _strdup( string ); // make two copies
char * copy2 = _strdup( string );
_strlwr( copy1 ); // C4996
// Note: _strlwr is deprecated; consider using _strlwr_s instead
_strupr( copy2 ); // C4996
// Note: _strupr is deprecated; consider using _strupr_s instead
printf( "Mixed: %s\n", string );
printf( "Lower: %s\n", copy1 );
printf( "Upper: %s\n", copy2 );
free( copy1 );
free( copy2 );
}
Mixed: The String to End All Strings! Lower: the string to end all strings! Upper: THE STRING TO END ALL STRINGS!
Important