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

📄 ctype.cpp

📁 MONA是为数不多的C++语言编写的一个很小的操作系统
💻 CPP
字号:
/*!
  \file   MlcCtype.cpp
  \brief  mona c character type

  Copyright (c) 2002-2004 shadow
  All rights reserved.<BR>
  \b License NYSL<BR>
  \b Create 2004/02/25
  \author  shadow

  $Revision: 1.1.1.1 $
  $Date: 2004/04/07 13:59:35 $
*/
#include <monalibc/ctype.h>

/*!
  \brief checks for an alphanumeric character

  \param c character to be checked
  \return  nonzero if c is alphanumeric, and zero if not
*/
int isalnum(int c){
  if(isascii(c)){
    return (isalpha(c) || isdigit(c));
  }

  return 0;
}

/*!
  \brief checks for an alphabetic character

  \param c character to be checked
  \return  nonzero if c is alphabetic, and zero if not
*/
int isalpha(int c){
  if(isascii(c)){
    return (isupper(c) || islower(c));
  }

  return 0;
}

/*!
  \brief checks for a 7-bit unsigned char

  \param c character to be checked
  \return  nonzero if c is ascii code, and zero if not
*/
int isascii(int c){
  return ((c & ~0x7f)?0:1);
}

/*!
  \brief checks for a blank character

  \param c character to be checked
  \return  nonzero if c is blank, and zero if not
*/
int isblank(int c){
  if(isascii(c)){
    return ((c == ' ') || (c == '\t'));
  }

  return 0;
}

/*!
  \brief checks for a control character

  \param c character to be checked
  \return  nonzero if c is control, and zero if not
*/
int iscntrl(int c){
  if(isascii(c)){
    return ((c < ' ') || (c == 0x7f)); 
  }

  return 0;
}

/*!
  \brief checks for a digit

  \param c character to be checked
  \return  nonzero if c is digit, and zero if not
*/
int isdigit(int c){
  if(isascii(c)){
    return ((c >= '0') && (c <= '9'));
  }

  return 0;
}

/*!
  \brief checks for any printable character except space

  \param c character to be checked
  \return  nonzero if c is printable except space, and zero if not
*/
int isgraph(int c){
  if(isascii(c)){
    return ((c > ' ') && (c < 0x7f));
  }

  return 0;
}

/*!
  \brief checks for a lower-case character

  \param c character to be checked
  \return  nonzero if c is lower, and zero if not
*/
int islower(int c){
  if(isascii(c)){
    return ((c >= 'a') && (c <= 'z'));
  }

  return 0;
}

/*!
  \brief checks for any printable character

  \param c character to be checked
  \return  nonzero if c is printable, and zero if not
*/
int isprint(int c){
  if(isascii(c)){
    return ((c >= ' ') && (c < 0x7f));
  }

  return 0;
}

/*!
  \brief checks for any printable character which is not a space or an alphanumeric character

  \param c character to be checked
  \return  nonzero if c is printable except space or alphanumeric, and zero if not
*/
int ispunct(int c){
  if(isascii(c)){
    return (isgraph(c) && !isalnum(c));
  }

  return 0;
}

/*!
  \brief checks for space characters

  \param c character to be checked
  \return  nonzero if c is space, and zero if not
*/
int isspace(int c){
  if(isascii(c)){
    return (((c >= 0x09) && (c <= 0x0d)) || (c == ' '));
  }

  return 0;
}

/*!
  \brief checks for an upper-case letter

  \param c character to be checked
  \return  nonzero if c is upper, and zero if not
*/
int isupper(int c){
  if(isascii(c)){
    return ((c >= 'A') && (c <= 'Z'));
  }

  return 0;
}

/*!
  \brief checks for a hexadecimal digits

  \param c character to be checked
  \return  nonzero if c is hexadecimal, and zero if not
*/
int isxdigit(int c){
  if(isascii(c)){
    return (isdigit(c) || ((c >= 'A') && (c <= 'F')) || ((c >= 'a') && (c <= 'f')));
  }

  return 0;
}

/*!
  \brief if can, c convert upper character

  \param c character to be converted
  \return  result of the conversion if can, and zero if not
*/
int toupper(int c){
  if(islower(c)) return (c + 'A' - 'a');

  return 0;
}

/*!
  \brief if can, c convert lower character

  \param c character to be converted
  \return  result of the conversion if can, and zero if not
*/
int tolower(int c){
  if(isupper(c)) return (c + 'a' - 'A');

  return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -