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

精利手表网站装修公司排名

精利手表网站,装修公司排名,用媒体做响应式网站可以吗,大连网站建设学校atoi()详解及其模拟实现 atoi()解析 所需头文件为stdlib.h int atoi (const char * str);整体功能#xff1a; 分析字符串 str#xff0c;将其内容解释为整数#xff0c;该整数作为 int 类型的值返回。 细节#xff1a; 该函数首先根据需要丢弃尽可能多的空格字…atoi()详解及其模拟实现 atoi()解析 所需头文件为stdlib.h int atoi (const char * str);整体功能 分析字符串 str将其内容解释为整数该整数作为 int 类型的值返回。 细节 该函数首先根据需要丢弃尽可能多的空格字符如在 isspace 中直到找到第一个非空格字符。 然后从此字符开始取一个可选的首字母加号或减号后跟尽可能多的 10 进制数字并将它们解释为数值。 字符串可以在构成整数的字符之后包含其他字符这些字符将被忽略并且对此函数的行为没有影响。 如果 str 中的第一个非空格字符序列不是有效的整数或者由于 str 为空或仅包含空格字符而不存在此类序列则不执行转换并返回零。 如果被解释成的数字大于INT_MAX或者小于MIN_MAX那么就返回0 例如 #includestdio.h #includestdlib.h int main() {printf(%d\n, atoi( ));printf(%d\n, atoi(0));printf(%d\n, atoi(1234));printf(%d\n, atoi(1234aabcd));printf(%d\n, atoi( 1234 1234));printf(%d\n, atoi(01234));printf(%d\n, atoi(-01234));printf(%d\n, atoi(a1234));printf(%d\n, atoi(a12341111111111111111111111111111111111111111111111111111111));return 0; }output: 0 0 1234 1234 1234 1234 -1234 0 0缺陷 我们看到当转换失败时函数atoi()的返回值是0正确将字符0转换为数字0函数atoi()的返回值也是0因此当函数返回0时我们就不能区分到底是这个字符串是非法字符串还是本身转换过来就是0这点需要在模拟实现中进行改进。 模拟实现my_atoi() 为了避免上面提到的缺陷我们可以定义一个全局变量state用来对函数返回值合法性判断 enum State {VALID, //0合法INVALID //1非法 }; enum State state INVALID; //首先默认非法如果合法再进行修改确保传入的指针不是空指针 assert(str);排除空格 while (*str )str;如果排除完空格之后指针str就走到尾了就说明这是一个空白字符串直接返回0 if (*str \0)return 0;为了方便对正负数进行判断我们设立一个标记flag int flag 1; if (*str -) {flag -1;str; } if (*str ) {str; }因为转换数字的时候可能超出int型的范围因此我们要将返回值定义为long long类型方便后续进行有效性判断返回值必须在int型的范围内 long long ret 0;while (isdigit(*str)) //isdigit()用来判断一个字符是否是数字字符 {ret ret * 10 flag * (*str - 0);if (ret INT_MAX || ret INT_MIN) //如果结果大于int最大值小于int最小值那么直接返回0return 0;str; }最后得到返回值ret再对其后面的字符进行判断如果是结束符‘\0’说明返回值合法否则还是一个非法值 if (*str \0) {state VALID; //如果合法就将state修改为VALID说明返回值合法return (int)ret; } elsereturn (int)ret;实现代码 #includeassert.h #includestdlib.h #includestdio.h #includelimits.h enum State {VALID,//0INVALID//1 }; enum State state INVALID; int my_atoi(const char* str) {assert(str);while (*str )str;if (*str \0)return 0;int flag 1;if (*str -){flag -1;str;}if (*str ){str;}long long ret 0;while (isdigit(*str)){ret ret * 10 flag * (*str - 0);if (ret INT_MAX || ret INT_MIN)return 0;str;}if (*str \0){state VALID;return (int)ret;}elsereturn (int)ret; }
http://www.hkea.cn/news/14361187/

相关文章:

  • 360网站制作沈阳专业制作网站公司哪家好
  • 网站的内链手机网站特效代码
  • 网页网站作业制作网络推广战略
  • 绿建设计院网站wordpress多站点版
  • 企业如何在网站上做宣传封面新闻是国家级媒体
  • 建设中学校园网站的目的wordpress不能上传主题
  • 大学网站模板下载2021年免费的网站有哪些
  • 网站设计一年费用手机商城oppo
  • 扁平风格网站模板河北建设工程信息网辅助评标系统
  • 国外哪些网站可以注册域名百度推广代运营
  • 制作网制作网站建设的公司融资计划书
  • 谁帮58同城做的网站吗电商网站建设流程图
  • 网站新闻不添加关键词超链接对优化有影响吗响应式网站软件
  • wordpress 站内通知网站设计公司长沙
  • 专业网站优化案例莱州网站建设方案
  • pc 手机网站源码网站专题建设
  • 公司怎么注册网站免费医疗方面的网站建设
  • 网站服务器要求高端室内设计
  • 哪个网站做母婴用品好中关村手机官网首页
  • 建设 网站协议范本网站视频下载
  • 网站提交入口新乡市网站建设公司
  • 政务网站建设的重要性wordpress 搬家乱码
  • 免费网站建设网站优化软件用jsp做网站的难点
  • 网站微信认证费用南京网站设计制作
  • 网站开发转包协议住房和城乡建设部的网站
  • 网站建设服务器租用郑州网站建设方案优化
  • 唐山网站建设多少钱如何制作出优秀的ui设计
  • 做盈利的设计素材网站有前途东莞东城社保局电话
  • 网站的建设需要多少北京到安阳的高铁
  • 网站素材免费网站建设公司咨询