towlower.c
来自「C语言库函数的原型,有用的拿去」· C语言 代码 · 共 98 行
C
98 行
/***
*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 + =
减小字号Ctrl + -
显示快捷键?