//将字符串s转化成对应类型,若转化成功,将值赋给result,并返回true;若转化失败,返回false。bool TryParse(string s, int& result){bool negative = false;int sign = 0;// sign == 1  这个空格前有数字了int sign0 = 0;//sign0=2说明之间这个数字前有空格了且空格前还有数字。if (s.empty()){return false;}if (s[0] == '-'){s.erase(0, 1);negative = true;if (s .size()==0||s[0]==' ')return false;}for (int i = 0; i < s.length(); i++)//空格:32   0:48  9:57{int cresult = s[i];if (cresult == 32){if (i == 0)sign0 = 1;else if (sign == 1)//这个空格前有数字了{sign0 = 2;}}else if (s[i] < 48 || s[i]>57){return false;}else//数字{sign = 1;if (sign0 == 2)//再次遇到隔空格的数字return false;}}//删除全部空格,不然" "会认为trueint sign1 = -1;while ((sign1 = s.find(' ')) != string::npos){s.erase(sign1,1);}if (s.empty()) return false;//只有空格返回false//这个数字合格result = strtol(s.c_str(), nullptr, 10);//同时改变这个需要转换值if (negative == true)result = (-result);return true;}

自己测试多种字符串了可以和c#一样结果。

c++ 实现c#的int.TryParse。相关推荐

  1. C#中 int.TryParse 的用法

    int i = -1; bool b = int.TryParse(null, out i); 执行完毕后,b等于false,i等于0,而不是等于-1,切记. int i = -1; bool b = ...

  2. 为什么现在改用int.TryParse了

    以前一直用 int.Parse(x)或者 Convert.ToInt64(x),后来项目中发现如果x变量的值为null是,就报错了,哪怕我这样写 int.Parse(x=x??"0" ...

  3. C# int.Parse()与int.TryParse():将字符串转化为整数

    int.TryParse()的用法 官方定义 // 摘要:// 将数字的字符串表示形式转换为它的等效 32 位有符号整数. 一个指示转换是否成功的返回值.//// 参数:// s:// 包含要转换的数 ...

  4. C# 使用int.TryParse,Convert.ToInt32,(int)将浮点类型转换整数时的区别

    int.TryParse,Convert.ToInt32,(int) 这几种类型在将浮点类型转换整数时是有差别 Convert.ToInt32则会进行四舍五入 int.TryParse只能转换整数,即 ...

  5. int.TryParse非预期执行引发的思考 ASP.NET -- WebForm -- 给图片添加水印标记 Windows -- 使用批处理文件.bat删除旧文件...

    int.TryParse非预期执行引发的思考 问题出现 这天在写一个页面,想谨慎些就用了int.TryParse,结果出问题了. 代码如下: Copy int id = 1000; //Request ...

  6. C#中(int),int.Parse,int.TryParse,Convert.ToInt32四则之间的用法

    今天忽然遇到了 int 转型的问题 同样转int型 结果 用int.Parse() 这种方式转世错的 用Convert.ToInt32的方式转却正确 所以今天特意上网搜了下 在这共享下 有需要的看下吧 ...

  7. 【转载】 C#中使用int.TryParse方法将字符串转换为整型Int类型

    在C#编程过程中,将字符串string转换为整型int过程中,时常使用的转换方法为int.Parse方法,但int.Parse在无法转换的时候,会抛出程序异常,其实还有个int.TryParse方法可 ...

  8. int.TryParse 方法

    int.TryParse 方法 程序开发中,免不了不同数据类型之间的转换.C#中针对转换有了一个TryParse的方法. 如果转换成功则返回true.否则返回false int.TryParse(st ...

  9. c# int.Parse()和 int.TryParse()用法

    先看一段代码 string mess=""; if (!int.TryParse(Request.Form["age"], out age)){mess = & ...

  10. int.TryParse非预期执行引发的思考

    问题出现 这天在写一个页面,想谨慎些就用了int.TryParse,结果出问题了. 代码如下: int id = 1000; //Request.QueryString["id"] ...

最新文章

  1. a10双核(8dm1)-android4.1.1-v2.07,台电官方论坛 - A10 双核 8DM1 2G ROM 4.0.4 固件 - 平板笔记本...
  2. 廖的python教程_廖雪峰的Python3.x教程.pdf
  3. MySQL-索引优化篇(4)_索引的维护
  4. JavaScript - JavaScript自定义弹出对话框
  5. 【Apscheduler】不生效也不报错,提示No handlers could be found for logger “apscheduler.executors.default”
  6. mybatis中foreach标签详解
  7. python装饰器函数后执行_Python装饰器限制函数运行时间超时则退出执行
  8. C++之用std::nothrow分配内存失败不抛异常
  9. java单终端登陆_配置终端服务单一登录
  10. SpringBoot的Bean之@ConditionalOnBean与@ConditionalOnClass
  11. FR获取当前控件位置值并转换(或赋值可参考)
  12. AliOS-Things开发入门
  13. 聪明的人脸识别4——Pytorch 利用Retinaface+Facenet搭建人脸识别平台
  14. LCD屏幕,IPS屏幕,TFT屏幕,SLCD屏幕和AMOLED手机屏幕介
  15. linux下ssh、scp无密钥登陆方法
  16. [PPTX解析] 图片效果算法篇:设置透明色
  17. Python调用OpenAI API示例
  18. 【干货分享】微信与ERP支付互通 世界会怎样-解决方案推荐
  19. ChatGPT不止是对话机器人
  20. 红队攻击思路知识框架

热门文章

  1. Win10笔记本电脑无法连接Wifi或连接上Wifi无网络访问
  2. Mac系统终端通过ssh连接CentOS
  3. linux的dns怎么配置正向区域文件,Linux学习之路之DNS的配置文件和正解区域文件、反解区域文件...
  4. 保定政治副中心虚火褪去 二手房降价50万出售
  5. 关于win10笔记本无法连接外接显示器及连接HDMI显示器后没有声音的解决方案
  6. 基于PING命令的主机探测
  7. USB Typec转HDMI方案
  8. 字节跳动换老板了,我面试也扑街了...
  9. PLC单片机实验开发系统装置QY-DPJ12
  10. 清理数据库软件(暴力删除)