当前位置: 首页>>代码示例>>C++>>正文


C++ IS_DIGIT函数代码示例

本文整理汇总了C++中IS_DIGIT函数的典型用法代码示例。如果您正苦于以下问题:C++ IS_DIGIT函数的具体用法?C++ IS_DIGIT怎么用?C++ IS_DIGIT使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了IS_DIGIT函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: CkBracketType

/*****************************************************************************
*   CkBracketType:
*	checks /citation=([1],[3])
*     May be we should check for only single value here like
*	/citation=[digit]
*                                                          -Tatiana 1/28/95
******************************************************************************/
NLM_EXTERN CharPtr CkBracketType(CharPtr str)
{	
	if (str == NULL)
		return "NULL value";
	if (*str == '[') {
		str++;
		if (!IS_DIGIT(*str)) {
			return str;
		} else {
			while (IS_DIGIT(*str)) {
				str++;
			}
			if (*str != ']') {
				return str;
			}
			str++;
			if (*str != '\0') {
				return str;
			}  
			return NULL;
		}
	} else {
		return str;
	}
}
开发者ID:fast-project,项目名称:mpifast,代码行数:32,代码来源:gbfeat.c

示例2: cmp

static int cmp(const void *a, const void *b) {
	char *da = NULL;
	char *db = NULL;
	const char *ca = r_str_trim_ro (a);
	const char *cb = r_str_trim_ro (b);
	if (!a || !b) {
		return (int) (size_t) ((char*) a - (char*) b);
	}
	if (sorted_column > 0) {
		da = strdup (ca);
		db = strdup (cb);
		int colsa = r_str_word_set0 (da);
		int colsb = r_str_word_set0 (db);
		ca = (colsa > sorted_column)? r_str_word_get0 (da, sorted_column): "";
		cb = (colsb > sorted_column)? r_str_word_get0 (db, sorted_column): "";
	}
	if (IS_DIGIT (*ca) && IS_DIGIT (*cb)) {
		ut64 na = r_num_get (NULL, ca);
		ut64 nb = r_num_get (NULL, cb);
		int ret = na > nb;
		free (da);
		free (db);
		return ret;
	}
	if (da && db) {
		int ret = strcmp (ca, cb);
		free (da);
		free (db);
		return ret;
	}
	free (da);
	free (db);
	return strcmp (a, b);
}
开发者ID:tutamuniz,项目名称:radare2,代码行数:34,代码来源:grep.c

示例3: check_number

static bool check_number(const char* str, size_t len)
{
  char num_type = 0;
  int stat = 0;
  for (size_t i = 0; i < len; i++) {
    if ('<' == str[i] || '>' == str[i]) {
      if (0 != stat)
        return false;
      stat = '<';
    } else if ('$' == str[i] || 'O' == str[i] || '%' == str[i]) {
      if ('$' == stat || '0' == stat)
        return false;
      num_type = str[i];
      stat = '$';
    } else if (IS_DIGIT(str[i])) {
      if (('%' == num_type) && ('0' != str[i] && '1' != str[i]))
        return false;
      else if (('O' == num_type) && !IS_DIGIT(str[i]))
        return false;
      stat = '0';
    } else if ('A' <= str[i] && 'F' >= str[i]) {
      if ('$' != num_type)
        return false;
      stat = '0';
    } else {
      break;
    }
  }
  return '0' == stat;    
}
开发者ID:wgtdkp,项目名称:6502-emulator,代码行数:30,代码来源:token.c

示例4: fast_atoi

int fast_atoi(const std::string & src)
{
    if (src.empty())
        return 0;
    const char * p = &src[0];
    const char * end = p + src.size();
    int value = 0;
    int sign = 1;

    while (IS_WHITESPACE(*p) || *p == '0') {
        INCREMENT_PTR();
    }

    switch (*p) {
        case '-':
            sign = -1;
            INCREMENT_PTR();
            break;
        case '+':
            INCREMENT_PTR();
            break;
        default:
            break;
    }

    while (IS_DIGIT(*p)) {
        value = value * 10 + (*p - '0');
        INCREMENT_PTR();
    }

parse_end:
    return value * sign;
}
开发者ID:joaormatos,项目名称:anaconda,代码行数:33,代码来源:stringcommon.cpp

示例5: if

// convert hexadecimal string to unsigned integer
char *hatoui(char *first, char *last, unsigned int *out)
{
	unsigned int result = 0;
	for (; first != last; ++first)
	{
		int digit;
		if (IS_DIGIT(*first))
		{
			digit = *first - '0';
		}
		else if (*first >= 'a' && *first <= 'f')
		{
			digit = *first - 'a' + 10;
		}
		else if (*first >= 'A' && *first <= 'F')
		{
			digit = *first - 'A' + 10;
		}
		else
		{
			break;
		}
		result = 16 * result + digit;
	}
	*out = result;

	return first;
}
开发者ID:Sumith1896,项目名称:precimonious,代码行数:29,代码来源:json.cpp

示例6: is_valid_project_name

static bool is_valid_project_name(const char *name) {
	int i;
	if (r_str_endswith (name, ".zip")) {
		return false;
	}
	for (i = 0; name[i]; i++) {
		switch (name[i]) {
		case '\\': // for w32
		case '.':
		case '_':
		case ':':
		case '-':
			continue;
		}
		if (name[i] >= 'a' && name[i] <= 'z') {
			continue;
		}
		if (name[i] >= 'A' && name[i] <= 'Z') {
			continue;
		}
		if (IS_DIGIT (name[i])) {
			continue;
		}
		return false;
	}
	return true;
}
开发者ID:csarn,项目名称:radare2,代码行数:27,代码来源:project.c

示例7: while

util::number::parse_result util::number::parse(const void* buf, size_t len, uint32_t& n, uint32_t min, uint32_t max)
{
	if (len == 0) {
		return PARSE_ERROR;
	}

	const unsigned char* ptr = (const unsigned char*) buf;
	const unsigned char* end = ptr + len;

	n = 0;

	while (ptr < end) {
		unsigned char c = *ptr++;
		if (!IS_DIGIT(c)) {
			return PARSE_ERROR;
		}

		uint32_t tmp = (n * 10) + (c - '0');

		// Overflow?
		if (tmp < n) {
			return PARSE_ERROR;
		}

		n = tmp;
	}

	if (n < min) {
		return PARSE_UNDERFLOW;
	} else if (n > max) {
		return PARSE_OVERFLOW;
	}

	return PARSE_SUCCEEDED;
}
开发者ID:guidoreina,项目名称:gwebs-plusplus,代码行数:35,代码来源:number.cpp

示例8: CkQualEcnum

/***************************************************************************
*   CkQualEcnum:
*   -- Ec_num has text format,
*      but the text only allow digits, period, and hyphen (-)
*                                                                12-10-93
****************************************************************************/
NLM_EXTERN int CkQualEcnum( GBQualPtr PNTR head_gbqp, GBQualPtr gbqp, 
   GBQualPtr preq,
   Boolean error_msgs, Boolean perform_corrections )
{
   CharPtr  str;
   int retval = GB_FEAT_ERR_NONE;
		

   retval = CkQualText(head_gbqp, gbqp, preq, NULL, FALSE, 
        error_msgs, perform_corrections);
		if (retval == GB_FEAT_ERR_NONE){
   
      str = gbqp->val;
                                                       /* open double quote */
      while (*str != '\0' && (*str == ' ' || *str == '\"'))
          str++;
   
      for (; *str != '\0' && *str != '\"'; str++)
          if (!IS_DIGIT(*str) && *str != '.' && *str != '-') {
            if (error_msgs){ 
               ErrPostEx(SEV_ERROR, ERR_QUALIFIER_BadECnum,
                 "At <%c>(%d) /%s=%s",
                 *str, (int) *str, gbqp->qual,gbqp->val); 
             }
             retval = GB_FEAT_ERR_DROP;
             if (perform_corrections){
                DeleteGBQualFromList(head_gbqp, gbqp, preq);
             }
           break;
      }
   }

   return retval;

} /* CkQualEcnum */
开发者ID:fast-project,项目名称:mpifast,代码行数:41,代码来源:gbfeat.c

示例9: while

number::parse_result_t number::parse_size_t(const char* string, size_t len, size_t& n, size_t min, size_t max)
{
	if (len == 0) {
		return PARSE_ERROR;
	}

	const char* end = string + len;

	n = 0;

	while (string < end) {
		unsigned char c = (unsigned char) *string++;
		if (!IS_DIGIT(c)) {
			return PARSE_ERROR;
		}

		size_t tmp = (n * 10) + (c - '0');

		// Overflow?
		if (tmp < n) {
			return PARSE_ERROR;
		}

		n = tmp;
	}

	if (n < min) {
		return PARSE_UNDERFLOW;
	} else if (n > max) {
		return PARSE_OVERFLOW;
	}

	return PARSE_SUCCEEDED;
}
开发者ID:guidoreina,项目名称:gweb-plusplus,代码行数:34,代码来源:number.cpp

示例10: cin_get_num

static int cin_get_num(RNum *num, RNumCalc *nc, RNumCalcValue *n) {
	double d;
	char str[R_NUMCALC_STRSZ]; // TODO: move into the heap?
	int i = 0;
	char c;
	str[0] = 0;
	while (cin_get (num, nc, &c)) {
		if (c != '_' && c!=':' && c!='.' && !isalnum ((ut8)c)) {
			cin_putback (num, nc, c);
			break;
		}
		if (i < R_NUMCALC_STRSZ) {
			str[i++] = c;
		}
	}
	str[i] = 0;
	*n = Nset (r_num_get (num, str));
	if (IS_DIGIT (*str) && strchr (str, '.')) {
		if (sscanf (str, "%lf", &d) < 1) {
			return 0;
		}
		if (n->n < d) {
			*n = Nsetf (d);
		}
		n->d = d;
	}
	return 1;
}
开发者ID:PankajKataria,项目名称:radare2,代码行数:28,代码来源:calc.c

示例11: strchr

R_API char *r_hex_from_py_array(char *out, const char *code) {
	const char abc[] = "0123456789abcdef";
	if (*code != '[' || !strchr (code, ']')) {
		return NULL;
	}
	code++;
	for (; *code; code++) {
		char *comma = strchr (code, ',');
		if (!comma) {
			comma = strchr (code, ']');
		}
		if (!comma) {
			break;
		}
		char * _word = r_str_ndup (code, comma - code);
		const char *word = _word;
		while (*word == ' ' || *word == '\t' || *word == '\n') {
			word++;
			word = skip_comment_py (word);
		}
		if (IS_DIGIT (*word)) {
			ut8 n = (ut8)r_num_math (NULL, word);
			*out++ = abc[(n >> 4) & 0xf];
			*out++ = abc[n & 0xf];
		}
		free (_word);
		code = comma;
		if (*code == ']') {
			break;
		}
	}
开发者ID:megabug,项目名称:radare2,代码行数:31,代码来源:hex.c

示例12: myatoi

int myatoi(const char *str)
{
	int integer = 0;
	const char * p = str;
	int flag = 1;

	switch (*p) {
	case '+':
		p ++;
		break;
	case '-':
		flag = -1;
		p ++;
		break;
	default:
		break;
	}

	for (; '\0' != *p && IS_DIGIT(*p); p ++) {
		integer *= 10;
		integer += *p - '0';
	}
	
	return flag > 0 ? integer : -integer;
}
开发者ID:oaix101125,项目名称:program,代码行数:25,代码来源:string2int.c

示例13: chxj_url_encode

char *
chxj_url_encode(apr_pool_t *pool, const char *src)
{
  char *dst;
  register char *sp = (char *)src;
  int len;
  register int pos;

  if (! src) return apr_pstrdup(pool, "\0");

  len = strlen(src) * 3 + 1;
  dst = apr_palloc(pool, len);
  memset(dst, 0, len);
  pos = 0;

  while(*sp) {
    if (IS_ALPHA_UPPER(*sp) || IS_ALPHA_LOWER(*sp) || IS_DIGIT(*sp)) {
      dst[pos++] = *sp++;
      continue;
    }
    if (*sp == ' ') {
      dst[pos++] = '+';
      sp++;
      continue;
    }

    dst[pos++] = '%';
    dst[pos++] = TO_HEXSTRING((*sp >> 4) & 0x0f);
    dst[pos++] = TO_HEXSTRING((*sp & 0x0f));
    sp++;
  }
  return dst;
}
开发者ID:unpush,项目名称:mod_chxj,代码行数:33,代码来源:chxj_url_encode.c

示例14: xmlPatScanNCName

static xmlChar *
xmlPatScanNCName(xmlPatParserContextPtr ctxt) {
    const xmlChar *q, *cur;
    xmlChar *ret = NULL;
    int val, len;

    SKIP_BLANKS;

    cur = q = CUR_PTR;
    val = xmlStringCurrentChar(NULL, cur, &len);
    if (!IS_LETTER(val) && (val != '_'))
	return(NULL);

    while ((IS_LETTER(val)) || (IS_DIGIT(val)) ||
           (val == '.') || (val == '-') ||
	   (val == '_') ||
	   (IS_COMBINING(val)) ||
	   (IS_EXTENDER(val))) {
	cur += len;
	val = xmlStringCurrentChar(NULL, cur, &len);
    }
    ret = xmlStrndup(q, cur - q);
    CUR_PTR = cur;
    return(ret);
}
开发者ID:crutchwalkfactory,项目名称:motocakerteam,代码行数:25,代码来源:pattern.c

示例15: getHostAddress

/*---------------------------------------------------------------------------*/
int getHostAddress (struct sockaddr_in *sin, const char *hostName, short port)
{
	struct hostent * hostent;

	sin->sin_family = AF_INET;
	sin->sin_port   = htons(port);
	
	// first try the name as a numbered IP address 
	if (IS_DIGIT(hostName[0]))
	{
		char testStr[16];

		webc_str_to_ip((unsigned char *) &sin->sin_addr, hostName);
		
		// do a check to make sure we translated an IP address
		webc_ip_to_str(testStr, (unsigned char *) &sin->sin_addr);
		if (!strcmp(hostName, testStr))
		{
			// if we go from string to ip addr and back, without
			//  changing the host name, this is success.
			return(0);
		}
	}
	
	// try looking up the name via DNS
	if ((hostent = gethostbyname(hostName)))
	{
		memcpy((unsigned char *) &sin->sin_addr, (unsigned char *) hostent->h_addr, 4);
		return(0);
	}
	
	return (-1);
}
开发者ID:maojxsir,项目名称:upnp,代码行数:34,代码来源:httptest.c


注:本文中的IS_DIGIT函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。