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

📄 calchlp.c

📁 功能强大的文本编辑器
💻 C
字号:
/*  calchlp.c                                         24.08.90
**
**  helper module   
**    for calculator
**  
*/

#include "config.h"
#include "standard.h"
#include "microsft.h"
#include "mb_ctype.h"

#include "calc.h"
#include "calchlp.h"
#include "ansi_out.h"


/**************************************************************
*                                                             *
*                  I/O SUBROUTINES                            *
*                                                             *
**************************************************************/

/*
**  print string w/o newline
*/
void prints(char * s)
{
  while(*s)
    putchar(*s++);
}

/*
**  print long decimal 
*/
void printld(long val)
{
  int digit;

  if(val < 0)
    putchar('-'), val = -val;
  
  digit = (int)(val % 10);

  if (val /= 10)
    printld(val);

  putchar(digit+'0');
}

/*
**  print long hex 
*/
void printlx(unsigned long val)
{
  int digit = (int)val & 0xF;

  if (val >>= 4)
    printlx(val);

  putchar(digit+((digit >9)? 'A'-10 : '0'));
}


/**************************************************************
*                                                             *
*                  STRINGS & CONVERSION                       *
*                                                             *
**************************************************************/

/*
**  kill trailing white spaces
*/
char * rtrim(char * s)
{
  int ll=0;

  while (*s++) ll++;
  --s;
  while (ll--)
  {
    --s;
    if (iswhite(*s))
      *s = '\0';
    else
      break;
  }
  return (s);
}

/*
**  skip leading white spaces
*/
char * skipwhites(char * s)
{
  while (iswhite(*s)) s++;
  return (s);
}

/*
**  report distance to delimiter
*/
int wordlen(char * s, char * delimiter)
{
  int ii = 0;
  if (*s == '\'') /* --  special case: '<char>' */
    if ((strchr(s+1,*s)-s) == 2)
      return (3);
  if (*s == '\"') /* --  special case: "<string>" */
    return (strchr(s+1,*s)-s+1);
  while (*s)
    if (strchr(delimiter, *s++))
      break;
    else
      ++ii;
  return (ii);
}

/*
**  compare strings
**
**    returns:
**      matching length
*/
int strlcmp(char * s, char * op)
{
  int ll = 0;
  while(*op)
    if(*(op++) == *(s++)) ++ll;
    else
      return(0);
  return (ll);
}

/*
**  convert decimal ascii to binary
*/
int digit(int d)
{
  if (isdigit(d))
    return (d-'0');
  else
    return (-1);
}

/*
**  convert hex ascii to binary
*/
int xdigit(int x)
{
  if (isdigit(x))
    return (x-'0');
  if (isxdigit(x))
    return (tolower(x)-'a'+10);
  else
    return (-1);
}

⌨️ 快捷键说明

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