?? lib_ascii.c
字號:
* Caller(s) : various.
*
* Note(s) : (1) See 'ASCII_IsPrint() Note #1'.
*********************************************************************************************************
*/
CPU_BOOLEAN ASCII_IsGraph (CPU_CHAR c)
{
CPU_BOOLEAN rtn;
rtn = (((c >= ASCII_CHAR_EXCLAMATION_MARK) && (c <= ASCII_CHAR_TILDE)) ? (DEF_YES) : (DEF_NO));
return (rtn);
}
/*
*********************************************************************************************************
* ASCII_IsLower()
*
* Description : Determine whether character is a lowercase alphabetic character.
*
* Argument(s) : c Character to examine.
*
* Return(s) : DEF_YES, if character is an lowercase alphabetic character.
*
* DEF_NO, if character is NOT an lowercase alphabetic character.
*
* Caller(s) : various.
*
* Note(s) : none.
*********************************************************************************************************
*/
CPU_BOOLEAN ASCII_IsLower (CPU_CHAR c)
{
CPU_BOOLEAN rtn;
rtn = (((c >= ASCII_CHAR_LATIN_SMALL_A) && (c <= ASCII_CHAR_LATIN_SMALL_Z)) ? (DEF_YES) : (DEF_NO));
return (rtn);
}
/*
*********************************************************************************************************
* ASCII_IsPrint()
*
* Description : Determine whether character is a printing character.
*
* Argument(s) : c Character to examine.
*
* Return(s) : DEF_YES, if character is an printing character.
*
* DEF_NO, if character is NOT an printing character.
*
* Caller(s) : various.
*
* Note(s) : (1) ISO/IEC 9899, Note 170, states that in the 'seven-bit US ASCII character set, the
* printing characters are those whose values lie from 0x20 (space) through 0x7E
* (tilde).'
*********************************************************************************************************
*/
CPU_BOOLEAN ASCII_IsPrint (CPU_CHAR c)
{
CPU_BOOLEAN rtn;
rtn = (((c >= ASCII_CHAR_SPACE) && (c <= ASCII_CHAR_TILDE)) ? (DEF_YES) : (DEF_NO));
return (rtn);
}
/*
*********************************************************************************************************
* ASCII_IsPunct()
*
* Description : Determine whether character is a punctuation character.
*
* Argument(s) : c Character to examine.
*
* Return(s) : DEF_YES, if character is an punctuation character.
*
* DEF_NO, if character is NOT an punctuation character.
*
* Caller(s) : various.
*
* Note(s) : (1) 'ASCII_IsPunct()' returns TRUE if 'ASCII_IsPrint()' would return TRUE for the
* argument character, but BOTH 'ASCII_IsSpace()' AND 'ASCII_IsAlnum()' would return
* FALSE.
*********************************************************************************************************
*/
CPU_BOOLEAN ASCII_IsPunct (CPU_CHAR c)
{
CPU_BOOLEAN rtn;
rtn = ((((c >= ASCII_CHAR_EXCLAMATION_MARK ) && (c <= ASCII_CHAR_SOLIDUS )) ||
((c >= ASCII_CHAR_COLON ) && (c <= ASCII_CHAR_COMMERCIAL_AT)) ||
((c >= ASCII_CHAR_LEFT_SQUARE_BRACKET) && (c <= ASCII_CHAR_GRAVE_ACCENT )) ||
((c >= ASCII_CHAR_LEFT_CURLY_BRACKET ) && (c <= ASCII_CHAR_TILDE ))) ? (DEF_YES) : (DEF_NO));
return (rtn);
}
/*
*********************************************************************************************************
* ASCII_IsSpace()
*
* Description : Determine whether character is a white-space character.
*
* Argument(s) : c Character to examine.
*
* Return(s) : DEF_YES, if character is a white-space character.
*
* DEF_NO, if character is NOT a white-space character.
*
* Caller(s) : various.
*
* Note(s) : (1) ISO/IEC 9899, Section 7.4.1.10.2 defines the 'standard white-space characters' as the
* space (' '), the form feed ('\f'), the new-line ('\n'), the carriage return ('\r'),
* the horizontal tab ('\t') & the vertical tab ('\v').
*********************************************************************************************************
*/
CPU_BOOLEAN ASCII_IsSpace (CPU_CHAR c)
{
CPU_BOOLEAN rtn;
rtn = (((c == ASCII_CHAR_SPACE) || (c == ASCII_CHAR_FF) ||
(c == ASCII_CHAR_LF ) || (c == ASCII_CHAR_CR) ||
(c == ASCII_CHAR_HT ) || (c == ASCII_CHAR_VT)) ? (DEF_YES) : (DEF_NO));
return (rtn);
}
/*
*********************************************************************************************************
* ASCII_IsUpper()
*
* Description : Determine whether character is a uppercase alphabetic character.
*
* Argument(s) : c Character to examine.
*
* Return(s) : DEF_YES, if character is an uppercase alphabetic character.
*
* DEF_NO, if character is NOT an uppercase alphabetic character.
*
* Caller(s) : various.
*
* Note(s) : none.
*********************************************************************************************************
*/
CPU_BOOLEAN ASCII_IsUpper (CPU_CHAR c)
{
CPU_BOOLEAN rtn;
rtn = (((c >= ASCII_CHAR_LATIN_CAPITAL_A) && (c <= ASCII_CHAR_LATIN_CAPITAL_Z)) ? (DEF_YES) : (DEF_NO));
return (rtn);
}
/*
*********************************************************************************************************
* ASCII_IsXDigit()
*
* Description : Determine whether character is a hexadecimal-digit character.
*
* Argument(s) : c Character to examine.
*
* Return(s) : DEF_YES, if character is a hexadecimal-digit character.
*
* DEF_NO, if character is NOT a hexadecimal-digit character.
*
* Caller(s) : various.
*
* Note(s) : none.
*********************************************************************************************************
*/
CPU_BOOLEAN ASCII_IsXDigit (CPU_CHAR c)
{
CPU_BOOLEAN rtn;
rtn = ((((c >= ASCII_CHAR_DIGIT_ZERO ) && (c <= ASCII_CHAR_DIGIT_NINE )) ||
((c >= ASCII_CHAR_LATIN_CAPITAL_A) && (c <= ASCII_CHAR_LATIN_CAPITAL_F)) ||
((c >= ASCII_CHAR_LATIN_SMALL_A ) && (c <= ASCII_CHAR_LATIN_SMALL_F ))) ? (DEF_YES) : (DEF_NO));
return (rtn);
}
/*
*********************************************************************************************************
* ASCII_ToLower()
*
* Description : Convert uppercase letter to a corresponding lowercase letter.
*
* Argument(s) : c Character to examine.
*
* Return(s) : If 'ASCII_IsUpper()' would return TRUE for the argument character, the lowercase
* equivalent is returned. Otherwise, the argument character is returned.
*
* Caller(s) : various.
*
* Note(s) : none.
*********************************************************************************************************
*/
CPU_CHAR ASCII_ToLower (CPU_CHAR c)
{
CPU_CHAR rtn;
rtn = (((c >= ASCII_CHAR_LATIN_CAPITAL_A) && (c <= ASCII_CHAR_LATIN_CAPITAL_Z)) ? (c + 0x20) : (c));
return (rtn);
}
/*
*********************************************************************************************************
* ASCII_ToUpper()
*
* Description : Convert lowercase letter to a corresponding uppercase letter.
*
* Argument(s) : c Character to examine.
*
* Return(s) : If 'ASCII_IsLower()' would return TRUE for the argument character, the uppercase
* equivalent is returned. Otherwise, the argument character is returned.
*
* Caller(s) : various.
*
* Note(s) : none.
*********************************************************************************************************
*/
CPU_CHAR ASCII_ToUpper (CPU_CHAR c)
{
CPU_CHAR rtn;
rtn = (((c >= ASCII_CHAR_LATIN_SMALL_A) && (c <= ASCII_CHAR_LATIN_SMALL_Z)) ? (c - 0x20) : (c));
return (rtn);
}
/*
*********************************************************************************************************
* ASCII_Cmp()
*
* Description : Determine if two characters are identical (case-insensitive).
*
* Argument(s) : c1 First character.
*
* c2 Second character.
*
* Return(s) : DEF_TRUE, if the characters are identical.
* DEF_FALSE, if the characters are NOT identical.
*
* Caller(s) : various.
*
* Note(s) : none.
*********************************************************************************************************
*/
CPU_BOOLEAN ASCII_Cmp (CPU_CHAR c1,
CPU_CHAR c2)
{
CPU_CHAR c1_cap;
CPU_CHAR c2_cap;
if (c1 == c2) {
return (DEF_YES);
}
c1_cap = ASCII_TO_UPPER(c1);
c2_cap = ASCII_TO_UPPER(c2);
if (c1_cap == c2_cap) {
return (DEF_YES);
} else {
return (DEF_NO);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -