⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lib_ascii.c

📁 飞思卡尔HCS12的OS移植(ucosII),实现了三个任务,IDE:CODEWARRIOR
💻 C
📖 第 1 页 / 共 2 页
字号:
* 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 + -