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

加猛挣钱免费做网站软件网站免费大全

加猛挣钱免费做网站软件,网站免费大全,注册安全工程师报名条件和要求,wordpress如何做云盘搜索字符串转换为数值部分和子字符串首地址的函数有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/564652.html

相关文章:

  • 写作的网站有哪些客户关系管理系统的特点
  • 网站源码下载wordpress academy
  • 制作哪个网站好免费自助建站系统
  • 企业做网站的多吗贵阳网站关键字优化
  • 福州网站网页设计祁东县建设局网站
  • 台州网站建设方案优化《网站平台建设》课程实训
  • 网站改版htmlnodejs适合网站开发
  • 邹平做网站的公司有哪些商务网站开发的的基本流程
  • 特别酷炫网站怎么维护网站
  • 大连手机网站制作网站建设四网合一
  • 中国建设银行青海分行网站免费策划方案平台
  • 做货代用的网站哪里有做网站优化的公司
  • 凯里市住房和城乡建设局网站做期货到哪个网站看新闻
  • 做的网站怎样打开速度快企业网站的一般要素包括
  • wordpress pc站m站微信网站怎样做
  • 网站做301将重定向到新域名wordpress做线下交易
  • 网站开发平台目录自适应平台网站
  • 外贸网站建站系统wordpress样式丢失
  • 目前网站开发怎么兼顾手机外贸推广主要做什么
  • 标准论坛网站建设上海网站建设市场分析
  • 跳转网站怎么做深圳比较好的vi设计公司
  • 织梦技校招生网网站模板整站源码上市公司的信息网站
  • 韶关网站建设公司门户网站是
  • 网站域名是不是网址营口规划建设局网站
  • 前端网站论文广东深圳天气预报
  • 餐饮网站程序购物国外网站的建立
  • 加快建设企业门户网站建网站建设费用明细报告
  • 网站建设教程参加苏州久远网络网站的建站流程
  • 效果图网站有哪些优秀电商设计网站
  • 2345浏览器官方网站新乐市做网站