当前位置: 首页 > wzjs >正文

前端开发做移动端的网站百度在线问答

前端开发做移动端的网站,百度在线问答,泸州建设厅施工许可办理网站,江门小程序商城开发字符串转换为数值部分和子字符串首地址的函数有strtol(),strtoul()和strtod()三个函数。 1、strtol()函数 long int strtol(const char *str, char **endptr, int base) //当base0时,若字符串不是以"0","0x"和"0X"开头,则将数字部分按照10进制…

字符串转换为数值部分和子字符串首地址的函数有strtol(),strtoul()和strtod()三个函数。

1、strtol()函数

long int strtol(const char *str, char **endptr, int base)

//当base=0时,若字符串不是以"0","0x"和"0X"开头,则将数字部分按照10进制转换

//当base=0时,若字符串是以"0"开头,则将数字部分按照8进制进制转换

//当base=0时,若字符串是以"0x"和"0X"开头,则将数字部分按照16进制进转换

//当base=10时,字符串将字符串视为十进制字符串,则将数字部分按照10进制转换

//当base=2时,字符串将字符串视为2进制字符串,则将数字部分按照2进制转换

//当base=16时,字符串将字符串视为16进制字符串,则将数字部分按照16进制转换

//当base=8时,字符串将字符串视为8进制字符串,则将数字部分按照8进制转换

void Test_strtol(void)

{

char buf[15];//声明char型数组buf[]

int retValue;//声明int型变量(有符号32位)

char *p;//声明char型数组SubStringBuf[]

strcpy(buf,"+10GHIJ");

retValue=strtol(buf,&p,0);

//当base=0时,若字符串不是以"0","0x"和"0X"开头,则将其视为十进制

//将"字符串的数字部分"转换为数值返回,保存到retValue中

//同时将"非数字部分的首地址"返回,保存到p

//retValue=10,p指向"GHIJ"

printf("Value=%d\r\n",retValue);//串口输出Value=10

if(p)printf("SubString=%s\r\n",p);//串口输出"SubString=GHIJ"

else printf("No SubString\r\n");

strcpy(buf,"-1EFGH");

retValue=strtol(buf,&p,0);

//当base=0时,若字符串不是以"0","0x"和"0X"开头,则将其视为十进制

//将"字符串的数字部分"转换为数值返回,保存到retValue中

//同时将"非数字部分的首地址"返回,保存到p

//retValue=-1,p指向"EFGH"

printf("Value=%d\r\n",retValue);//串口输出Value=-1

if(p)printf("SubString=%s\r\n",p);//串口输出"SubString=EFGH"

else printf("No SubString\r\n");

strcpy(buf,"0x10GHIJ");

retValue=strtol(buf,&p,0);

//当base=0时,若字符串以"0x"或"0X"开头,则将其视为十六进制

//将"字符串的数字部分"转换为数值返回,保存到retValue中

//同时将"非数字部分的首地址"返回,保存到p

//retValue=0x10,p指向"GHIJ"

printf("Value=%d\r\n",retValue);//串口输出Value=16

if(p)printf("SubString=%s\r\n",p);//串口输出"SubString=GHIJ"

else printf("No SubString\r\n");

strcpy(buf,"010GHIJ");

retValue=strtol(buf,&p,0);

//当base=0时,若字符串以"0"开头,则将其视为八进制

//将"字符串的数字部分"转换为数值返回,保存到retValue中

//同时将"非数字部分的首地址"返回,保存到p

//retValue=8,p指向"GHIJ"

printf("Value=%d\r\n",retValue);//串口输出Value=8

if(p)printf("SubString=%s\r\n",p);//串口输出"SubString=GHIJ"

else printf("No SubString\r\n");

strcpy(buf,"10GHIJ");

retValue=strtol(buf,&p,10);

//当base=10时,字符串将字符串视为十进制字符串

//将"字符串的数字部分"转换为数值返回,保存到retValue中

//同时将"非数字部分的首地址"返回,保存到p

//retValue=10,p指向"GHIJ"

printf("Value=%d\r\n",retValue);//串口输出Value=10

if(p)printf("SubString=%s\r\n",p);//串口输出"SubString=GHIJ"

else printf("No SubString\r\n");

strcpy(buf,"10GHIJ");

retValue=strtol(buf,&p,2);

//当base=2时,字符串将字符串视为二进制字符串

//将"字符串的数字部分"转换为数值返回,保存到retValue中

//同时将"非数字部分的首地址"返回,保存到p

//retValue=2,p指向"GHIJ"

printf("Value=%d\r\n",retValue);//串口输出Value=2

if(p)printf("SubString=%s\r\n",p);//串口输出"SubString=GHIJ"

else printf("No SubString\r\n");

strcpy(buf,"10GHIJ");

retValue=strtol(buf,&p,16);

//当base=2时,字符串将字符串视为16进制字符串

//将"字符串的数字部分"转换为数值返回,保存到retValue中

//同时将"非数字部分的首地址"返回,保存到p

//retValue=16,p指向"GHIJ"

printf("Value=%d\r\n",retValue);//串口输出Value=16

if(p)printf("SubString=%s\r\n",p);//串口输出"SubString=GHIJ"

else printf("No SubString\r\n");

strcpy(buf,"10GHIJ");

retValue=strtol(buf,&p,8);

//当base=2时,字符串将字符串视为8进制字符串

//将"字符串的数字部分"转换为数值返回,保存到retValue中

//同时将"非数字部分的首地址"返回,保存到p

//retValue=8,p指向"GHIJ"

printf("Value=%d\r\n",retValue);//串口输出Value=8

if(p)printf("SubString=%s\r\n",p);//串口输出"SubString=GHIJ"

else printf("No SubString\r\n");

retValue=0;

}

2、strtoul()函数

unsigned long int strtoul(const char *str, char **endptr, int base)

//当base=0时,若字符串不是以"0","0x"和"0X"开头,则将数字部分按照10进制转换

//当base=0时,若字符串是以"0"开头,则将数字部分按照8进制进制转换

//当base=0时,若字符串是以"0x"和"0X"开头,则将数字部分按照16进制进转换

//当base=10时,字符串将字符串视为十进制字符串,则将数字部分按照10进制转换

//当base=2时,字符串将字符串视为2进制字符串,则将数字部分按照2进制转换

//当base=16时,字符串将字符串视为16进制字符串,则将数字部分按照16进制转换

//当base=8时,字符串将字符串视为8进制字符串,则将数字部分按照8进制转换

#include "string.h" //strcpy()需要包含string.h头文件

#include "stdlib.h" //strtol()和strtoul()需要包含stdlib.h头文件

void Test_strtoul(void)

{

char buf[15];//声明char型数组buf[]

uint32_t retValue;//声明uint32_t型变量(有符号32位)

char *p;//声明char型数组SubStringBuf[]

strcpy(buf,"+10GHIJ");

retValue=strtoul(buf,&p,0);

//当base=0时,若字符串不是以"0","0x"和"0X"开头,则将其视为十进制

//将"字符串的数字部分"转换为数值返回,保存到retValue中

//同时将"非数字部分的首地址"返回,保存到p

//retValue=10,p指向"GHIJ"

printf("Value=%u\r\n",retValue);//串口输出Value=10

if(p)printf("SubString=%s\r\n",p);//串口输出"SubString=GHIJ"

else printf("No SubString\r\n");

strcpy(buf,"-1EFGH");

retValue=strtoul(buf,&p,0);

//当base=0时,若字符串不是以"0","0x"和"0X"开头,则将其视为十进制

//将"字符串的数字部分"转换为数值返回,保存到retValue中

//同时将"非数字部分的首地址"返回,保存到p

//retValue=-1,p指向"EFGH"

printf("Value=%u\r\n",retValue);//串口输出Value=-1

if(p)printf("SubString=%s\r\n",p);//串口输出"SubString=EFGH"

else printf("No SubString\r\n");

strcpy(buf,"0x10GHIJ");

retValue=strtoul(buf,&p,0);

//当base=0时,若字符串以"0x"或"0X"开头,则将其视为十六进制

//将"字符串的数字部分"转换为数值返回,保存到retValue中

//同时将"非数字部分的首地址"返回,保存到p

//retValue=0x10,p指向"GHIJ"

printf("Value=%u\r\n",retValue);//串口输出Value=16

if(p)printf("SubString=%s\r\n",p);//串口输出"SubString=GHIJ"

else printf("No SubString\r\n");

strcpy(buf,"010GHIJ");

retValue=strtoul(buf,&p,0);

//当base=0时,若字符串以"0"开头,则将其视为八进制

//将"字符串的数字部分"转换为数值返回,保存到retValue中

//同时将"非数字部分的首地址"返回,保存到p

//retValue=8,p指向"GHIJ"

printf("Value=%u\r\n",retValue);//串口输出Value=8

if(p)printf("SubString=%s\r\n",p);//串口输出"SubString=GHIJ"

else printf("No SubString\r\n");

strcpy(buf,"10GHIJ");

retValue=strtoul(buf,&p,10);

//当base=10时,字符串将字符串视为十进制字符串

//将"字符串的数字部分"转换为数值返回,保存到retValue中

//同时将"非数字部分的首地址"返回,保存到p

//retValue=10,p指向"GHIJ"

printf("Value=%u\r\n",retValue);//串口输出Value=10

if(p)printf("SubString=%s\r\n",p);//串口输出"SubString=GHIJ"

else printf("No SubString\r\n");

strcpy(buf,"10GHIJ");

retValue=strtoul(buf,&p,2);

//当base=2时,字符串将字符串视为二进制字符串

//将"字符串的数字部分"转换为数值返回,保存到retValue中

//同时将"非数字部分的首地址"返回,保存到p

//retValue=2,p指向"GHIJ"

printf("Value=%u\r\n",retValue);//串口输出Value=2

if(p)printf("SubString=%s\r\n",p);//串口输出"SubString=GHIJ"

else printf("No SubString\r\n");

strcpy(buf,"10GHIJ");

retValue=strtoul(buf,&p,16);

//当base=2时,字符串将字符串视为16进制字符串

//将"字符串的数字部分"转换为数值返回,保存到retValue中

//同时将"非数字部分的首地址"返回,保存到p

//retValue=16,p指向"GHIJ"

printf("Value=%u\r\n",retValue);//串口输出Value=16

if(p)printf("SubString=%s\r\n",p);//串口输出"SubString=GHIJ"

else printf("No SubString\r\n");

strcpy(buf,"10GHIJ");

retValue=strtoul(buf,&p,8);

//当base=2时,字符串将字符串视为8进制字符串

//将"字符串的数字部分"转换为数值返回,保存到retValue中

//同时将"非数字部分的首地址"返回,保存到p

//retValue=8,p指向"GHIJ"

printf("Value=%u\r\n",retValue);//串口输出Value=8

if(p)printf("SubString=%s\r\n",p);//串口输出"SubString=GHIJ"

else printf("No SubString\r\n");

retValue=0;

}

测试strtol()和strtoul()不同之处

当将“保存的返回值retValue”声明uint32_t型变量(无符号32位)时,strtoul()和strtol()功能有点点区别,当“字符串的数字部分小于0”时,strtoul()的值为0x100000000+负数,例如字符串“-1”,它会返回retValue=0x100000000-1=0xFFFFFFFF=4294967295。当“字符串的数字部分大于0x7FFFFFFF”时,strtol()的返回值为负数”,例如字符串“0xFFFFFFFF”,它会返回retValue=0xFFFFFFFF=-1

#include "string.h" //strcpy()需要包含string.h头文件

#include "stdlib.h" //strtol()和strtoul()需要包含stdlib.h头文件

void Test_strtol_strtoul(void)

{

char buf[15];//声明char型数组buf[]

int retValue1;//声明int型变量(有符号32位)

uint32_t retValue2;//声明uint32_t型变量(无符号32位)

char *p;//声明char型指针p

strcpy(buf,"4294967295EFGH");

retValue1=strtol(buf,&p,0);

//当base=0时,若字符串不是以"0","0x"和"0X"开头,则将其视为十进制

//将"字符串的数字部分"转换为数值返回,保存到retValue中

//同时将"非数字部分的首地址"返回,保存到p

//retValue1=0x7FFFFFFF,p指向"EFGH"

printf("Value=%d\r\n",retValue1);//串口输出Value=2147483647

if(p)printf("SubString=%s\r\n",p);//串口输出"SubString=EFGH"

else printf("No SubString\r\n");

strcpy(buf,"4294967295EFGH");

retValue2=strtoul(buf,&p,0);

//当base=0时,若字符串不是以"0","0x"和"0X"开头,则将其视为十进制

//将"字符串的数字部分"转换为数值返回,保存到retValue中

//同时将"非数字部分的首地址"返回,保存到p

//retValue2=4294967295,p指向"EFGH"

printf("Value=%u\r\n",retValue2);//串口输出Value=4294967295

if(p)printf("SubString=%s\r\n",p);//串口输出"SubString=EFGH"

else printf("No SubString\r\n");

strcpy(buf,"-1EFGH");

retValue1=strtol(buf,&p,0);

//当base=0时,若字符串不是以"0","0x"和"0X"开头,则将其视为十进制

//将"字符串的数字部分"转换为数值返回,保存到retValue中

//同时将"非数字部分的首地址"返回,保存到p

//retValue1=-1,p指向"EFGH"

printf("Value=%d\r\n",retValue1);//串口输出Value=-1

if(p)printf("SubString=%s\r\n",p);//串口输出"SubString=EFGH"

else printf("No SubString\r\n");

strcpy(buf,"-1EFGH");

retValue2=strtoul(buf,&p,0);

//当base=0时,若字符串不是以"0","0x"和"0X"开头,则将其视为十进制

//将"字符串的数字部分"转换为数值返回,保存到retValue中

//同时将"非数字部分的首地址"返回,保存到p

//retValue2=0x100000000-1=4294967295,p指向"EFGH"

printf("Value=%u\r\n",retValue2);//串口输出Value=4294967295

if(p)printf("SubString=%s\r\n",p);//串口输出"SubString=EFGH"

else printf("No SubString\r\n");

retValue2=0;

}

3、strtod()函数

double strtod(const char *str, char **endptr);

//将"字符串的数字部分"转换为数值返回,同时将"非数字部分的首地址"返回,保存到endptr

void Test_strtod(void)

{

char buf[15];//声明char型数组buf[]

double retValue;//声明double型变量(64位)

char *p;//声明char型数组SubStringBuf[]

strcpy(buf,"+10.5GHIJ");

retValue=strtod(buf,&p);

//将"字符串的数字部分"转换为数值返回,保存到retValue中

//同时将"非数字部分的首地址"返回,保存到p

//retValue=10.5,p指向"GHIJ"

printf("Value=%0.1f\r\n",retValue);//串口输出Value=10.5

if(p)printf("SubString=%s\r\n",p);//串口输出"SubString=GHIJ"

else printf("No SubString\r\n");

strcpy(buf,"-10.5GHIJ");

retValue=strtod(buf,&p);

//将"字符串的数字部分"转换为数值返回,保存到retValue中

//同时将"非数字部分的首地址"返回,保存到p

//retValue=-10.5,p指向"GHIJ"

printf("Value=%0.1f\r\n",retValue);//串口输出Value=-10.5

if(p)printf("SubString=%s\r\n",p);//串口输出"SubString=GHIJ"

else printf("No SubString\r\n");

retValue=0;

}

http://www.dtcms.com/wzjs/511047.html

相关文章:

  • 北京云邦网站建设百度关键词点击
  • 网站做外链多少钱关键词智能优化排名
  • 合肥微网站百度关键词指数排行
  • web网站开发源代码百度关键词排名工具
  • 做网站的工具免费网站 推广网站
  • 发布做网站需求qq群网络营销推广策划
  • o2o平台都有哪些seo中文含义是什么
  • 怎样做网站的链接自己开网店怎么运营
  • 万网虚拟主机上传网站网络营销的定义是什么
  • 商城网站建设公司排名东莞谷歌推广公司
  • 西安网站建设公司平台百度关键词优化企业
  • 网站域名解析错误怎么办市场推广方式有哪几种
  • 做网站推广如何百度推广开户联系方式
  • 建设人力资源服务网站工作方案淘宝seo优化怎么做
  • 临沂网站建设方案报价网站维护需要多长时间
  • 成都装修网站制作多少钱免费开店的电商平台
  • 如何确定网站建设 栏目图片百度搜索
  • logo设计公司汉狮怎么样一键关键词优化
  • 番禺品牌型网站如何做好网站站内优化
  • 江北网站制作网站建设优化400报价
  • 网站开发的完整流程seo实战密码第三版pdf
  • 网站建设 500强建站微信营销号
  • 基础精品课程网站品牌服务推广
  • 网站短信验证码接口怎么做免费加客源软件
  • 做网站需要多少钱西安网店运营推广中级实训
  • 新疆和田市建设局网站一键优化是什么意思
  • 网站竞价推广哪个好seo搜索引擎优化的内容
  • 外地公司做的网站能备案吗aso优化app推广
  • 域名网站成人专业技能培训机构
  • 县网站建设运维情况自查报告新手如何学seo