📄 towlower.c
字号:
/***
*towlower.c - convert wide character to lower case
*
* Copyright (c) Microsoft Corporation. All rights reserved.
*
*Purpose:
* Defines towlower().
*
*******************************************************************************/
#include <cruntime.h>
#include <stdio.h>
#include <locale.h>
#include <awint.h>
#include <ctype.h>
#include <mtdll.h>
#include <setlocal.h>
/***
*wint_t _towlower_l(c, ptloci) - convert wide character to lower case
*
*Purpose:
* Multi-thread function only! Non-locking version of towlower.
*
*Entry:
*
*Exit:
*
*Exceptions:
*
*******************************************************************************/
extern "C" wint_t __cdecl _towlower_l (
wint_t c,
_locale_t plocinfo
)
{
wint_t widechar;
if (c == WEOF)
return c;
_LocaleUpdate _loc_update(plocinfo);
if ( _loc_update.GetLocaleT()->locinfo->lc_handle[LC_CTYPE] == _CLOCALEHANDLE )
return __ascii_towlower(c);
/* if checking case of c does not require API call, do it */
if ( c < 256 )
{
if ( !iswupper(c) ) {
return c;
} else {
return _loc_update.GetLocaleT()->locinfo->pclmap[c];
}
}
/* convert wide char to lowercase */
if ( 0 == __crtLCMapStringW(
_loc_update.GetLocaleT()->locinfo->lc_handle[LC_CTYPE],
LCMAP_LOWERCASE,
(LPCWSTR)&c,
1,
(LPWSTR)&widechar,
1 ) )
{
return c;
}
return widechar;
}
/***
*wint_t towlower(c) - convert wide character to lower case
*
*Purpose:
* towlower() returns the lowercase equivalent of its argument
*
*Entry:
* c - wint_t value of character to be converted
*
*Exit:
* if c is an upper case letter, returns wint_t value of lower case
* representation of c. otherwise, it returns c.
*
*Exceptions:
*
*******************************************************************************/
extern "C" wint_t __cdecl towlower (
wint_t c
)
{
return _towlower_l(c, NULL);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -