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

谁做响应式网站seo搜索引擎优化工资薪酬

谁做响应式网站,seo搜索引擎优化工资薪酬,什么网站可以做期刊封面,漳州十大建筑模板厂家文章目录 前言一、atoi()库函数的介绍及使用1.1 atoi()库函数介绍1.2 atoi()库函数使用 二、atoi()库函数的模拟实现2.1 函数设计2.2 函数实现思路2.3 具体实现2.4 测试 总结 前言 本篇文章介绍c语言中库函数atoi()的使用,以及模拟实现库函数。 一、atoi()库函数的…

文章目录

  • 前言
  • 一、atoi()库函数的介绍及使用
    • 1.1 atoi()库函数介绍
    • 1.2 atoi()库函数使用
  • 二、atoi()库函数的模拟实现
    • 2.1 函数设计
    • 2.2 函数实现思路
    • 2.3 具体实现
    • 2.4 测试
  • 总结


前言

本篇文章介绍c语言中库函数atoi()的使用,以及模拟实现库函数。


一、atoi()库函数的介绍及使用

1.1 atoi()库函数介绍

以下是cplusplus网站关于atoi()库函数的介绍。atoi()库函数
在这里插入图片描述
说明:

  • 首先,这个函数会将字符串前面的空格一一跳过,直到遇到非空格字符;这个非空字符分为以下情况

    • 如果非空字符为字母,则返回结果为0
      比如"abc123",转换得到0
    • 如果非空字符为’-',则会转换得到一个负整数且这个负整数没有超过int表示的范围,正常返回这个数;如果这个数超过了int型数据的表示范围,则返回-2147483648
      例如,
      “-12345”,转换得到整型数值-12345
      "-123456789123456"转换得到-2147483648
    • 如果非空字符为‘+’或者为数字字符,则会转换得到一个正整数且这个正整数没有超过int表示的范围,正常返回这个数;如果这个数超过了int型数据的表示范围,则返回2147483647
      例如,
      "+12345"转换得到整型数值12345
      "123456"转换得到整型数值12345
      "123456789123456"转换得到2147483647
  • 如果str指向的是一个空字符串或者只包含空格,则返回值为0.

  • 如果两个数字字符之间存在其他非数字字符,则转换非数字字符之前的数字字符。
    “123ab112”,只会转换得到整型数值123

1.2 atoi()库函数使用

  • 负数转换
    在这里插入图片描述

  • 负数溢出转换
    在这里插入图片描述

  • 正数转换
    在这里插入图片描述

  • 正数溢出转换
    在这里插入图片描述

  • 包含非数字字符
    (1)数字字符后面包含其他字符
    在这里插入图片描述

(2)数字前面包含非数字字符
在这里插入图片描述

  • 只包含非数字字符
    在这里插入图片描述

二、atoi()库函数的模拟实现

2.1 函数设计

函数名:StrToInt
函数返回值类型: int
函数参数类型: const char* str
int StrToInt(const char* str);

2.2 函数实现思路

  1. 函数指针的非空判断
//指针的非空判断 利用断言
assert(str);
  1. 空字符串的判断
//如果第一个字符为'\0',则表示字符串为空串
if('\0' == *str)
{return 0;
}
  1. 跳过字符串前面的空格字符
//利用库函数提供isspace()函数判断
while(isspace(*str)) str++;
  1. 正数和负数的符合判断
int flag = 1; //默认为正数
switch(*str)
{
case '-': flag = -1;
case '+': str++;
}
  1. 字符数字与整型数值的转换
//1.如果溢出判断使用long long
long long ret = 0;
while(isdigit(*str))  //isdigit()函数为库函数
{ret = 10*ret + flag*(*str - '0');//溢出判断if(ret > INT_MAX){return INT_MAX;}else if(ret < INT_MIN){return INT_MIN;}str++;
}
return  (int)ret;//2. 如果溢出判断不使用long long
int ret = 0;
while(isdigit(*str))
{int ConvertDigit = *str - '0';if((ret > INT_MAX/10) || ((INT_MAX/10 == ret) && (ConvertDigit > 7))){return flag > 0? INT_MAX:INT_MIN;}ret = ret*10 + ConvertDigit; 
}
return flag > 0 ? ret : -ret;

2.3 具体实现

  • 方法一(使用long long)
#include<assert.h>
#include<limits.h>
#include<ctype.h>
//version 1.3 
int StrToInt(const char* str)
{//1. 空指针判断assert(str);//2. 空字符串判断if ('\0' == *str){return 0;}//3. 去掉空格while (isspace(*str)) str++;long long ret = 0; //long long 用于判断转换结果是否超出int的表示范围int flag = 1; //用于判断是否为负数,默认为非负数//4. + - 判断switch (*str){case '-': flag = -1;case '+': str++;}//转换操作while (isdigit(*str)){ret = ret * 10 + flag * (*str - '0');//5. 溢出判断if (ret > INT_MAX){return INT_MAX;}if (ret < INT_MIN){return INT_MIN;}++str;}return (int)ret;
}
  • 方法二(不使用long long)
#include<assert.h>
#include<limits.h>
#include<ctype.h>// version: 1.4 
// 溢出判断不使用long long
// 1. ConvertDigit = *str - '0'   ->得到字符转换成的数字
// 2. ret = ret*10 + ConvertDigit ->得到计算的结果,默认为正数,最后根据符号返回结果  
// 3. (正数溢出判断) 上一次 ret > INT_MAX/10   
//				 说明下一次计算的ret >= INT_MAX		   则正数溢出
// (负数溢出判断) 上一次 ret == INT_MAX/10 && ConvertDigit > 7  
//				 说明下一次相加 ret >= INT_MIN的绝对值   则负数溢出
//  INT_MAX = 2147483647   INT_MIN = -2147483647-1
// 最后根据flag返回结果  flag > 0 返回INT_MAX  否则返回INT_MIN    
// 4. flag > 0  直接返回 ret   flag < 0 返回-ret
int StrToInt(const char* str)
{//1. 空指针判断assert(str);//2. 空串判断if ('\0' == *str){return 0;}//3. 清除空格while (isspace(*str)) str++;//4. 正负号判断int flag = 1;  //默认为正数switch (*str){case '-': flag = -1;case '+': str++;}//5. 转换int ret = 0;while (isdigit(*str)){int ConvertDigit = *str - '0';//溢出判断if ((ret > (INT_MAX / 10)) || (((INT_MAX/10) == ret) && (ConvertDigit > 7))){return (flag > 0) ? INT_MAX : INT_MIN;}ret = ret * 10 + ConvertDigit;str++;}return flag > 0 ? ret : -ret;
}

2.4 测试

  • 负数
    在这里插入图片描述

  • 负数溢出
    在这里插入图片描述

  • 正数
    在这里插入图片描述

  • 正数溢出
    在这里插入图片描述

  • 包含非数字字符
    (1)数字字符后面包含非数字字符
    在这里插入图片描述
    (2)数字字符前面包含非数字字符
    在这里插入图片描述


总结

本篇文章介绍了库函数atoi()的使用,并使用不同的思路模拟实现atoi()。

http://www.qdjiajiao.com/news/5138.html

相关文章:

  • 黄石做网站联系百度手机助手安卓版
  • 国外做名片网站seo排名规则
  • 直销公司有多少家拼多多seo搜索优化
  • 国外怎么做网站广州最新疫情
  • 做网站好还是做程序员好高端网站建设深圳
  • 企业做网站哪家好电脑培训班价目表
  • 软件ui设计师网站建设优化的技巧
  • 比价网站 源码德芙巧克力软文推广
  • 南宁网站建设-中国互联前端seo优化
  • dw网页制作多少钱广州seo黑帽培训
  • 中企动力网站建设 医疗免费的行情软件网站下载
  • 网站流量一直做不起来佛山网站建设制作
  • 做网站是互联网开发吗手机端seo
  • 移动应用开发案例淘宝关键词优化推广排名
  • wordpress js库优化软件有哪些
  • 电子商务 网站建设短视频培训机构
  • 衡水做网站报价全网整合营销推广方案
  • 网站电脑端和手机端精准营销的三要素
  • wordpress适合建什么网站优化关键词方法
  • 怎样用css做网站免费发外链
  • 企业网站首页设计公司seo外链收录
  • 网站制作都包括什么百度seo软件是做什么的
  • 做国外市场哪个网站好灵宝seo公司
  • FPGA毕业设计代做网站网络营销案例成功案例
  • 企业免费建站百度搜索排行seo
  • 青州做网站十大免费网站推广
  • 腾讯建站官网免费推广网站2023
  • wordpress代码优化防疫措施
  • 做照片有那些网站常州seo招聘
  • 用视频做影视的网站网站推广优化招聘