您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ string_to_number函数代码示例

51自学网 2021-06-03 08:30:37
  C++
这篇教程C++ string_to_number函数代码示例写得很实用,希望能帮到您。

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

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

示例1: parse_time_string

static voidparse_time_string(unsigned int *hour, unsigned int *minute, const char *time){	char *hours;	char *minutes;	hours = (char *)malloc(3);	minutes = (char *)malloc(3);	bzero((void *)hours, 3);	bzero((void *)minutes, 3);	if (split_time(&hours, &minutes, time) == 1)	{                /* if the number starts with 0, replace it with a space else                   this string_to_number will interpret it as octal !! */                if ((hours[0] == '0') && (hours[1] != '/0'))			hours[0] = ' ';		if ((minutes[0] == '0') && (minutes[1] != '/0'))			minutes[0] = ' ';		if((string_to_number(hours, 0, 23, hour) == -1) ||			(string_to_number(minutes, 0, 59, minute) == -1)) {			*hour = *minute = (-1);		}	}	if ((*hour != (-1)) && (*minute != (-1))) {		free(hours);		free(minutes);		return;	}	/* If we are here, there was a problem ..*/	print_error("invalid time %s specified, should be HH:MM format", time);}
开发者ID:FelipeFernandes1988,项目名称:Alice-1121-Modem,代码行数:34,


示例2: PyNumber_Float

static PyObject *NumberValue(PyObject *self, PyObject *args){  PyObject *object;  PyObject *result = NULL;  if (!PyArg_ParseTuple(args, "O:NumberValue", &object))    return NULL;    result = PyNumber_Float(object);  if (result)    return result;  PyErr_Clear();  if (PyString_Check(object) || PyUnicode_Check(object))    return string_to_number(object);  /* convert it to a string */  object = object_to_string(object);  if (object) {    result = string_to_number(object);    Py_DECREF(object);  }  else result = NULL;  return result;}
开发者ID:H1d3r,项目名称:binary_blobs,代码行数:27,


示例3: main

int main(){    number_t a, b, c;    int i;    a = string_to_number("-1.7171");    b = string_to_number("-17.17");    c = zero();    print_number(a);    printf("/n");    print_number(b);    printf("/n");    c = sub_number(a, b);    /*       for(i=-10; i<10; i++) {       c = make_exp(i);       print_number(c);       printf("/n");       }       */    c = mult_num(a, b);    print_number(c);    printf("/n");    return 0;}
开发者ID:hss440,项目名称:algo1,代码行数:28,


示例4: strncpy

struct in_addr *dotted_to_addr(const char *dotted){	static struct in_addr addr;	unsigned char *addrp;	char *p, *q;	unsigned int onebyte;	int i;	char buf[20];	/* copy dotted string, because we need to modify it */	strncpy(buf, dotted, sizeof (buf) - 1);	addrp = (unsigned char *) &(addr.s_addr);	p = buf;	for (i = 0; i < 3; i++) {		if ((q = strchr(p, '.')) == NULL)			return (struct in_addr *) NULL;		*q = '/0';		if (string_to_number(p, 0, 255, &onebyte) == -1)			return (struct in_addr *) NULL;		addrp[i] = (unsigned char) onebyte;		p = q + 1;	}	/* we've checked 3 bytes, now we check the last one */	if (string_to_number(p, 0, 255, &onebyte) == -1)		return (struct in_addr *) NULL;	addrp[3] = (unsigned char) onebyte;	return &addr;}
开发者ID:NieHao,项目名称:R7000,代码行数:34,


示例5: read_range

//==============================================================================static void read_range(const String& input, BoolVector& range,		uint_t min_value, uint_t max_value){	boost::cmatch what;	boost::regex exp("(//d{1,})-(//d{1,})");	StringVector list;	boost::split(list, input, boost::is_any_of(","));	foreach(const String& item, list)	{		uint_t n = 0;		uint_t r1, r2;		if (string_to_number(item, n))			r1 = r2 = n;		else		{			if (!boost::regex_match(item.c_str(), what, exp))				throw std::runtime_error("read_range: incorrect input");			string_to_number(what[1].str(), r1);			string_to_number(what[2].str(), r2);			if (r1 > r2)				std::swap(r1, r2);		}		if (r2 > max_value || r1 < min_value)			throw std::runtime_error("read_range: value is out of range");		if (range.size() <= r2)			range.resize(r2 + 1, false);		for (; r1 <= r2; r1++)			range[r1] = true;	}
开发者ID:EmuxEvans,项目名称:cc-tool,代码行数:33,


示例6: command_dump

// Dumps memory.void command_dump(int number_of_arguments, char **argument){    int length;    int base;    if (number_of_arguments != 2 &&        number_of_arguments != 3)    {        debug_print("Invalid number of arguments. Try 'help %s'./n", argument[0]);        return;    }    string_to_number(argument[1], &base);    if (number_of_arguments == 3)    {        string_to_number(argument[2], &length);    }    else    {        length = 1;    }    debug_print("%u %s/n", length, argument[2]);    debug_memory_dump((void *) base, length);}
开发者ID:chaos4ever,项目名称:chaos,代码行数:28,


示例7: parse

static int parse(int c, char **argv, int invert, unsigned int *flags,		const struct ipt_entry *entry, unsigned int *nfcache,		struct ipt_entry_match **match){	struct ipt_ttl_info *info = (struct ipt_ttl_info *) (*match)->data;	unsigned int value;	check_inverse(optarg, &invert, &optind, 0);	switch (c) {		case '2':			if (string_to_number(optarg, 0, 255, &value) == -1)				exit_error(PARAMETER_PROBLEM,				           "ttl: Expected value between 0 and 255");			if (invert)				info->mode = IPT_TTL_NE;			else				info->mode = IPT_TTL_EQ;			/* is 0 allowed? */			info->ttl = value;			break;		case '3':			if (string_to_number(optarg, 0, 255, &value) == -1)				exit_error(PARAMETER_PROBLEM,				           "ttl: Expected value between 0 and 255");			if (invert) 				exit_error(PARAMETER_PROBLEM,						"ttl: unexpected `!'");			info->mode = IPT_TTL_LT;			info->ttl = value;			break;		case '4':			if (string_to_number(optarg, 0, 255, &value) == -1)				exit_error(PARAMETER_PROBLEM,				           "ttl: Expected value between 0 and 255");			if (invert)				exit_error(PARAMETER_PROBLEM,						"ttl: unexpected `!'");			info->mode = IPT_TTL_GT;			info->ttl = value;			break;		default:			return 0;	}	if (*flags) 		exit_error(PARAMETER_PROBLEM, 				"Can't specify TTL option twice");	*flags = 1;	return 1;}
开发者ID:springware,项目名称:92u8,代码行数:59,


示例8: extract_usb_address

//==============================================================================static bool extract_usb_address(const String &str, uint_t &bus, uint_t &device){	boost::cmatch what;	boost::regex regex("([//d]{1,3}):([//d]{1,3})");	if (!boost::regex_match(str.c_str(), what, regex))		return false;	string_to_number(what[1].str(), bus);	string_to_number(what[2].str(), device);	return true;}
开发者ID:scott-42,项目名称:cc-tool,代码行数:13,


示例9: test2

int test2(){    char x[128], y[128];    while(1)     {        scanf("%s", x);        scanf("%s", y);        print_number(mult_number(string_to_number(x), string_to_number(y)));        printf("/n");    }}
开发者ID:hss440,项目名称:algo1,代码行数:12,


示例10: main

int main (int argc, char **argv){  if (argc < 2)    usage ("Invalid number of arguments");  {        const char *const action = argv[1];        Success (*function) (Stream, Connection_Id);    Connection_Id conn_id;    char *host;    int port;    if (! strcmp (action, "--version"))      {        printf ("spdsend %s/n", VERSION);        exit (EXIT_OK);      }        if (! strcmp (action, "--open"))      {        if (argc != 4)          usage ("Invalid number of arguments");        host = argv[2];        port = string_to_number (argv[3], 0, 65535);      }    else      {        if (argc != 3)          usage ("Invalid number of arguments");        conn_id = string_to_number (argv[2], CONNECTION_ID_MIN,                                    CONNECTION_ID_MAX);        if (! strcmp (action, "--close"))          function = close_connection;        else if (! strcmp (action, "--send"))          function = send_command;        else          usage ("Invalid option");      }        {      Stream server = open_server ();      if (server == NONE)        return EXIT_ERROR;            {        int result = (! strcmp (action, "--open")                      ? open_connection (server, host, port)                      : function (server, conn_id));        return (result == OK ? EXIT_OK : EXIT_ERROR);      }    }  }}
开发者ID:FREEWING-JP,项目名称:ekho,代码行数:53,


示例11: parse

static intparse(int c, char **argv, int invert, unsigned int *flags,      const struct ip6t_entry *entry,      unsigned int *nfcache,      struct ip6t_entry_match **match){	struct ip6t_fuzzy_info *fuzzyinfo =		(struct ip6t_fuzzy_info *)(*match)->data;	u_int32_t num;	switch (c) {	case '1':	if (invert)	       	exit_error(PARAMETER_PROBLEM,"Can't specify ! --lower-limit");	if (*flags & IP6T_FUZZY_OPT_MINIMUM)       	      exit_error(PARAMETER_PROBLEM,"Can't specify --lower-limit twice");	if (string_to_number(optarg,1,MAXFUZZYRATE,&num) == -1 || num < 1)			exit_error(PARAMETER_PROBLEM,"BAD --lower-limit");		fuzzyinfo->minimum_rate = num ;		*flags |= IP6T_FUZZY_OPT_MINIMUM;		break;	case '2':	if (invert)		exit_error(PARAMETER_PROBLEM,"Can't specify ! --upper-limit");	if (*flags & IP6T_FUZZY_OPT_MAXIMUM)	   exit_error(PARAMETER_PROBLEM,"Can't specify --upper-limit twice");	if (string_to_number(optarg,1,MAXFUZZYRATE,&num) == -1 || num < 1)		exit_error(PARAMETER_PROBLEM,"BAD --upper-limit");		fuzzyinfo->maximum_rate = num;		*flags |= IP6T_FUZZY_OPT_MAXIMUM;		break ;	default:		return 0;	}	return 1;}
开发者ID:StephenMacras,项目名称:dsl-n55u-bender,代码行数:52,


示例12: create_parse

/* Function which parses command options; returns true if it ate an option */static intcreate_parse(int c, char *argv[], void *data, unsigned *flags){	struct ip_set_req_nethash_create *mydata =	    (struct ip_set_req_nethash_create *) data;	ip_set_ip_t value;	DP("create_parse");	switch (c) {	case '1':		if (string_to_number(optarg, 1, UINT_MAX - 1, &mydata->hashsize))			exit_error(PARAMETER_PROBLEM, "Invalid hashsize `%s' specified", optarg);		*flags |= OPT_CREATE_HASHSIZE;		DP("--hashsize %u", mydata->hashsize);				break;	case '2':		if (string_to_number(optarg, 1, 65535, &value))			exit_error(PARAMETER_PROBLEM, "Invalid probes `%s' specified", optarg);		mydata->probes = value;		*flags |= OPT_CREATE_PROBES;		DP("--probes %u", mydata->probes);				break;	case '3':		if (string_to_number(optarg, 0, 65535, &value))			exit_error(PARAMETER_PROBLEM, "Invalid resize `%s' specified", optarg);		mydata->resize = value;		*flags |= OPT_CREATE_RESIZE;		DP("--resize %u", mydata->resize);				break;	default:		return 0;	}	return 1;}
开发者ID:inibir,项目名称:daemongroup,代码行数:52,


示例13: fgetwc

closure *parse_number(FILE *file, closure *accum){    wchar_t c = fgetwc(file);    if(iswdigit(c)){	return parse_number(file, cons(character(c), accum));    } else if(iswspace(c)) {	return string_to_number(reverse(accum));    } else if(c == L')') {	ungetwc(c, file); 	return string_to_number(reverse(accum));    } else {	ungetwc(c, file);	return parse_symbol(file, accum);    }}
开发者ID:8l,项目名称:eight,代码行数:15,


示例14: mult_number

number_t mult_number(number_t a, number_t b){    number_t result;    int i, k;    result = string_to_number("0.0");    for (i = 0; i < b.digit_len; i++) {        result = mult_one(10, result);        result = add_number(result, mult_one(b.digit[i], a));    }    k = b.digit_len - b.int_len;    if (result.int_len > k) {        result.int_len -= k;    } else {        for (i = result.digit_len - 1; i >= 0; i--)            result.digit[i + k] = result.digit[i];        for (i = 0; i < k; i++)            result.digit[i] = 0;        result.digit_len += k;	    }    result.sign *= b.sign;    return remove_zeros(result);}
开发者ID:hss440,项目名称:algo1,代码行数:25,


示例15: adt_parser

/* Add, del, test parser */static ip_set_ip_tadt_parser(unsigned cmd, const char *optarg, void *data){	struct ip_set_req_nethash *mydata =	    (struct ip_set_req_nethash *) data;	char *saved = ipset_strdup(optarg);	char *ptr, *tmp = saved;	ip_set_ip_t cidr;	ptr = strsep(&tmp, "/");		if (tmp == NULL) {		if (cmd == CMD_TEST)			cidr = 32;		else			exit_error(PARAMETER_PROBLEM,				   "Missing cidr from `%s'", optarg);	} else		if (string_to_number(tmp, 1, 31, &cidr))			exit_error(PARAMETER_PROBLEM,				   "Out of range cidr `%s' specified", optarg);		mydata->cidr = cidr;	parse_ip(ptr, &mydata->ip);	if (!mydata->ip)		exit_error(PARAMETER_PROBLEM,			  "Zero valued IP address `%s' specified", ptr);	free(saved);	return mydata->ip;	};
开发者ID:inibir,项目名称:daemongroup,代码行数:32,


示例16: parse_tos

static voidparse_tos(const char *s, struct ipt_tos_info *info){	unsigned int i;	unsigned int tos;	if (string_to_number(s, 0, 255, &tos) != -1) {				/* start IP precedence and TOS remark by f00110348 */		/*		if (tos == IPTOS_LOWDELAY		    || tos == IPTOS_THROUGHPUT		    || tos == IPTOS_RELIABILITY		    || tos == IPTOS_MINCOST		    || tos == IPTOS_NORMALSVC) {*/		 if ((tos >= 0) && (tos <= 255)) {		/* end IP precedence and TOS remark by f00110348 */				    	info->tos = (u_int8_t )tos;		    	return;		}	} else {		for (i = 0; i<sizeof(TOS_values)/sizeof(struct TOS_value); i++)			if (strcasecmp(s,TOS_values[i].name) == 0) {				info->tos = TOS_values[i].TOS;				return;			}	}	exit_error(PARAMETER_PROBLEM, "Bad TOS value `%s'", s);}
开发者ID:benjaminlevine,项目名称:Huawei-HG633-Open-Source-Software-Package,代码行数:30,


示例17: parse_mask

static struct in_addr *parse_mask(char *mask){	static struct in_addr maskaddr;	struct in_addr *addrp;	unsigned int bits;	if (mask == NULL) {		/* no mask at all defaults to 32 bits */		maskaddr.s_addr = 0xFFFFFFFF;		return &maskaddr;	}	if ((addrp = dotted_to_addr(mask)) != NULL)		/* dotted_to_addr already returns a network byte order addr */		return addrp;	if (string_to_number(mask, 0, 32, &bits) == -1)		xtables_error(PARAMETER_PROBLEM,			      "invalid mask `%s' specified", mask);	if (bits != 0) {		maskaddr.s_addr = htonl(0xFFFFFFFF << (32 - bits));		return &maskaddr;	}	maskaddr.s_addr = 0L;	return &maskaddr;}
开发者ID:AmVPN,项目名称:iptables,代码行数:26,


示例18: memset

static struct in6_addr *parse_ip6_mask(char *mask){	static struct in6_addr maskaddr;	struct in6_addr *addrp;	unsigned int bits;	if (mask == NULL) {				memset(&maskaddr, 0xff, sizeof maskaddr);		return &maskaddr;	}	if ((addrp = numeric_to_addr(mask)) != NULL)		return addrp;	if (string_to_number(mask, 0, 128, &bits) == -1)		ebt_print_error("Invalid IPv6 Mask '%s' specified", mask);	if (bits != 0) {		char *p = (char *)&maskaddr;		memset(p, 0xff, bits / 8);		memset(p + (bits / 8) + 1, 0, (128 - bits) / 8);		p[bits / 8] = 0xff << (8 - (bits & 7));		return &maskaddr;	}	memset(&maskaddr, 0, sizeof maskaddr);	return &maskaddr;}
开发者ID:qtekfun,项目名称:htcDesire820Kernel,代码行数:26,


示例19: parse_addrport

/* * Get IP address and port from the argument. * Return 0 if failed, *	  1 if addr read *        2 if addr and port read */intparse_addrport(char *buf, u_int16_t proto, u_int32_t * addr,	       u_int16_t * port){	char *pp;	long prt;	struct in_addr inaddr;	pp = strchr(buf, ':');	if (pp)		*pp = '/0';	if (inet_aton(buf, &inaddr) != 0)		*addr = inaddr.s_addr;	else if (host_to_addr(buf, &inaddr) != -1)		*addr = inaddr.s_addr;	else		return 0;	if (pp == NULL)		return 1;	if ((prt = string_to_number(pp + 1, 0, 65535)) != -1)		*port = htons(prt);	else if ((prt = service_to_port(pp + 1, proto)) != -1)		*port = htons(prt);	else		return 0;	return 2;}
开发者ID:yubo,项目名称:ktcpvs-matrix,代码行数:37,


示例20: parse

/* Function which parses command options; returns true if it   ate an option */static intparse(int c, char **argv, int invert, unsigned int *flags,      const struct ipt_entry *entry,      unsigned int *nfcache,      struct ipt_entry_match **match){	struct ipt_rateinfo *r = (struct ipt_rateinfo *)(*match)->data;	unsigned int num;	switch(c) {	case '%':		if (check_inverse(argv[optind-1], &invert, &optind, 0)) break;		if (!parse_rate(optarg, &r->avg))			exit_error(PARAMETER_PROBLEM,				   "bad rate `%s'", optarg);		break;	case '$':		if (check_inverse(argv[optind-1], &invert, &optind, 0)) break;		if (string_to_number(optarg, 0, 10000, &num) == -1)			exit_error(PARAMETER_PROBLEM,				   "bad --limit-burst `%s'", optarg);		r->burst = num;		break;	default:		return 0;	}	if (invert)		exit_error(PARAMETER_PROBLEM,			   "limit does not support invert");	return 1;}
开发者ID:325116067,项目名称:semc-qsd8x50,代码行数:37,


示例21: wlan_genevt_write

/**  *  @brief genevt proc write function * *  @param f	   file pointer *  @param buf     pointer to data buffer *  @param cnt     data number to write *  @param data    data to write *  @return 	   number of data */static intwlan_genevt_write(struct file *f, const char *buf, unsigned long cnt,                  void *data){    struct net_device *netdev = data;    wlan_private *priv = netdev->priv;    char databuf[10];    int genevt;    MODULE_GET;    if (cnt > 10) {        MODULE_PUT;        return cnt;    }    if (copy_from_user(databuf, buf, cnt)) {        MODULE_PUT;        return 0;    }    genevt = string_to_number(databuf);    switch (genevt) {    case GEN_FATAL_ERROR_EVT:        PRINTM(MSG, "proc: call wlan_fatal_error_handle/n");        wlan_fatal_error_handle(priv);        break;    default:        break;    }    MODULE_PUT;    return cnt;}
开发者ID:GodFox,项目名称:magx_kernel_xpixl,代码行数:38,


示例22: parse

static int parse(int c, char **argv, int argc,      const struct ebt_u_entry *entry,      unsigned int *flags,      struct ebt_entry_match **match){	struct ebt_limit_info *r = (struct ebt_limit_info *)(*match)->data;	unsigned int num;	switch(c) {	case ARG_LIMIT:		ebt_check_option2(flags, FLAG_LIMIT);		if (ebt_check_inverse2(optarg))			ebt_print_error2("Unexpected `!' after --limit");		if (!parse_rate(optarg, &r->avg))			ebt_print_error2("bad rate `%s'", optarg);		break;	case ARG_LIMIT_BURST:		ebt_check_option2(flags, FLAG_LIMIT_BURST);		if (ebt_check_inverse2(optarg))			ebt_print_error2("Unexpected `!' after --limit-burst");		if (string_to_number(optarg, 0, 10000, &num) == -1)			ebt_print_error2("bad --limit-burst `%s'", optarg);		r->burst = num;		break;	default:		return 0;	}	return 1;}
开发者ID:brianwoo,项目名称:cm11_grouper,代码行数:32,


示例23: proc_on_close

/** *  @brief This function handle the generic file close * *  @param inode   A pointer to inode structure *  @param file    A pointer to file structure *  @return		N/A */static voidproc_on_close(struct inode *inode, struct file *file){#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)	struct proc_private_data *priv = PDE_DATA(inode);#else	struct proc_private_data *priv = PDE(inode)->data;#endif	struct proc_data *pdata = file->private_data;	char *line;	int i;	ENTER();	if (!pdata->wrlen)		return;	line = pdata->wrbuf;	while (line[0]) {		for (i = 0; i < priv->num_items; i++) {			if (!strncmp			    (line, priv->pdata[i].name,			     strlen(priv->pdata[i].name))) {				line += strlen(priv->pdata[i].name) + 1;				if (priv->pdata[i].size == 1)					*((u8 *)priv->pdata[i].addr) =						(u8)string_to_number(line);				else if (priv->pdata[i].size == 2)					*((u16 *) priv->pdata[i].addr) =						(u16) string_to_number(line);				else if (priv->pdata[i].size == 4)					*((u32 *)priv->pdata[i].addr) =						(u32)string_to_number(line);			}		}		while (line[0] && line[0] != '/n')			line++;		if (line[0])			line++;	}	if (priv->pbt->bt_dev.hscmd || priv->pbt->bt_dev.pscmd	    || priv->pbt->bt_dev.sdio_pull_ctrl	    || priv->pbt->bt_dev.test_mode || priv->pbt->bt_dev.hscfgcmd) {		bt_prepare_command(priv->pbt);		wake_up_interruptible(&priv->pbt->MainThread.waitQ);	}	LEAVE();	return;}
开发者ID:acorn-marvell,项目名称:brillo_pxa_kernel,代码行数:53,


示例24: parse

static int parse(int c, char **argv, int invert, unsigned int *flags,		const struct ip6t_entry *entry,		struct ip6t_entry_target **target){	struct ip6t_HL_info *info = (struct ip6t_HL_info *) (*target)->data;	unsigned int value;	if (*flags & IP6T_HL_USED) {		exit_error(PARAMETER_PROBLEM, 				"Can't specify HL option twice");	}	if (!optarg) 		exit_error(PARAMETER_PROBLEM, 				"HL: You must specify a value");	if (check_inverse(optarg, &invert, NULL, 0))		exit_error(PARAMETER_PROBLEM,				"HL: unexpected `!'");		if (string_to_number(optarg, 0, 255, &value) == -1)			exit_error(PARAMETER_PROBLEM,			           "HL: Expected value between 0 and 255");	switch (c) {		case '1':			info->mode = IP6T_HL_SET;			break;		case '2':			if (value == 0) {				exit_error(PARAMETER_PROBLEM,					"HL: decreasing by 0?");			}			info->mode = IP6T_HL_DEC;			break;		case '3':			if (value == 0) {				exit_error(PARAMETER_PROBLEM,					"HL: increasing by 0?");			}			info->mode = IP6T_HL_INC;			break;		default:			return 0;	}		info->hop_limit = value;	*flags |= IP6T_HL_USED;	return 1;}
开发者ID:325116067,项目名称:semc-qsd8x50,代码行数:58,


示例25: expand_data

bool expand_data(const std::string s, void **d, unsigned *siz){std::string buf; unsigned tam,t,f,g,len,sl,r=0,pos; bool err; char c[2];	if (!bracketed_substr(s,buf,'(',')' ,&g)) return(false);	string_to_number(buf,tam);	if (siz!=0) *siz=tam;	if (tam==0)	{		*d=0;		return(true);	}	*d=new char[tam];	pos=0;	len=(unsigned)s.length();	for (f=g; f<len; f++) if (s[f]=='/n') break;	if (f>=len) return(false);	f+=2;	t=0;	c[1]=0;	err=false;	while ((r<tam)&&(f<len))	{		while ((f<len)&&(s[f]=='/t')) f++;		if (f<len)		{			g=f;			while ((g<len)&&(s[g]!='/n')) g++;			if (g<len)			{				buf=s.substr(f,g-f);				sl=(unsigned)buf.length();				for (unsigned h=0; h<sl; h+=2)				{					c[0]=read_hexbyte(buf[h],buf[h+1]);					if (!err)					{						r++;						((unsigned char *)(*d))[pos]=c[0];						pos++;					}				}				if (!err) f=g+1;			}			else			{				f=len;				err=true;			}		}		else err=true;	}	if (err) return(false);	return(true);}
开发者ID:OpenMORA,项目名称:uma-utils-pkg,代码行数:57,


示例26: expand_str

std::string expand_str(const std::string &s){std::string res,buf; unsigned tam,t,f,g,len,sl,r=0; bool err; char c[2];	if (!bracketed_substr(s,buf,'(',')')) return(res);	string_to_number(buf,tam);	len=(unsigned)s.length();	for (f=0; f<len; f++) if (s[f]=='/n') break;	if (f>=len) return(res);	f+=2;	t=0;	c[1]=0;	err=false;	while ((r<tam)&&(f<len))	{		while ((f<len)&&(s[f]=='/t')) f++;		if (f<len)		{			g=f;			while ((g<len)&&(s[g]!='/n')) g++;			if (g<len)			{				buf=s.substr(f,g-f);				sl=(unsigned)buf.length();				for (unsigned h=0; h<sl; h+=2)				{					if (buf[h]!='*') c[0]=read_hexbyte(buf[h],buf[h+1]);					else					{						if (h+4>=sl) err=true;						else						{							c[0]=read_hexword(buf[h+1],buf[h+2],buf[h+3],buf[h+4]);							h+=3;						}					}					if (!err)					{						r++;						res+=c;					}				}				if (!err) f=g+1;			}			else			{				f=len;				err=true;			}		}		else err=true;	}	if (err) return("");	return(res);}
开发者ID:OpenMORA,项目名称:uma-utils-pkg,代码行数:57,


示例27: parse_service

static int parse_service(char *buf, ipvs_service_t *svc){  char *portp = NULL;  long portn;  int result=SERVICE_NONE;  struct in_addr inaddr;  struct in6_addr inaddr6;  if (buf == NULL || str_is_digit(buf))    return SERVICE_NONE;  if (buf[0] == '[') {    buf++;    portp = strchr(buf, ']');    if (portp == NULL)      return SERVICE_NONE;    *portp = '/0';    portp++;    if (*portp == ':')      *portp = '/0';    else      return SERVICE_NONE;  }  if (inet_pton(AF_INET6, buf, &inaddr6) > 0) {    svc->addr.in6 = inaddr6;    svc->af = AF_INET6;    svc->netmask = 128;  } else {    portp = strrchr(buf, ':');    if (portp != NULL)      *portp = '/0';    if (inet_aton(buf, &inaddr) != 0) {      svc->addr.ip = inaddr.s_addr;      svc->af = AF_INET;    } else if (host_to_addr(buf, &inaddr) != -1) {      svc->addr.ip = inaddr.s_addr;      svc->af = AF_INET;    } else      return SERVICE_NONE;  }  result |= SERVICE_ADDR;  if (portp != NULL) {    result |= SERVICE_PORT;    if ((portn = string_to_number(portp+1, 0, 65535)) != -1)      svc->port = htons(portn);    else if ((portn = service_to_port(portp+1, svc->protocol)) != -1)      svc->port = htons(portn);    else      return SERVICE_NONE;  }  return result;}
开发者ID:gitter-badger,项目名称:mruby-ipvs,代码行数:56,


示例28: parse_tcp_option

static voidparse_tcp_option(const char *option, u_int8_t *result){	unsigned int ret;	if (string_to_number(option, 1, 255, &ret) == -1)		exit_error(PARAMETER_PROBLEM, "Bad TCP option `%s'", option);	*result = (u_int8_t)ret;}
开发者ID:WiseMan787,项目名称:ralink_sdk,代码行数:10,



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


C++ string_type函数代码示例
C++ string_to_int函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。