c++ 实现c#的int.TryParse。
//将字符串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。相关推荐
- C#中 int.TryParse 的用法
int i = -1; bool b = int.TryParse(null, out i); 执行完毕后,b等于false,i等于0,而不是等于-1,切记. int i = -1; bool b = ...
- 为什么现在改用int.TryParse了
以前一直用 int.Parse(x)或者 Convert.ToInt64(x),后来项目中发现如果x变量的值为null是,就报错了,哪怕我这样写 int.Parse(x=x??"0" ...
- C# int.Parse()与int.TryParse():将字符串转化为整数
int.TryParse()的用法 官方定义 // 摘要:// 将数字的字符串表示形式转换为它的等效 32 位有符号整数. 一个指示转换是否成功的返回值.//// 参数:// s:// 包含要转换的数 ...
- C# 使用int.TryParse,Convert.ToInt32,(int)将浮点类型转换整数时的区别
int.TryParse,Convert.ToInt32,(int) 这几种类型在将浮点类型转换整数时是有差别 Convert.ToInt32则会进行四舍五入 int.TryParse只能转换整数,即 ...
- int.TryParse非预期执行引发的思考 ASP.NET -- WebForm -- 给图片添加水印标记 Windows -- 使用批处理文件.bat删除旧文件...
int.TryParse非预期执行引发的思考 问题出现 这天在写一个页面,想谨慎些就用了int.TryParse,结果出问题了. 代码如下: Copy int id = 1000; //Request ...
- C#中(int),int.Parse,int.TryParse,Convert.ToInt32四则之间的用法
今天忽然遇到了 int 转型的问题 同样转int型 结果 用int.Parse() 这种方式转世错的 用Convert.ToInt32的方式转却正确 所以今天特意上网搜了下 在这共享下 有需要的看下吧 ...
- 【转载】 C#中使用int.TryParse方法将字符串转换为整型Int类型
在C#编程过程中,将字符串string转换为整型int过程中,时常使用的转换方法为int.Parse方法,但int.Parse在无法转换的时候,会抛出程序异常,其实还有个int.TryParse方法可 ...
- int.TryParse 方法
int.TryParse 方法 程序开发中,免不了不同数据类型之间的转换.C#中针对转换有了一个TryParse的方法. 如果转换成功则返回true.否则返回false int.TryParse(st ...
- c# int.Parse()和 int.TryParse()用法
先看一段代码 string mess=""; if (!int.TryParse(Request.Form["age"], out age)){mess = & ...
- int.TryParse非预期执行引发的思考
问题出现 这天在写一个页面,想谨慎些就用了int.TryParse,结果出问题了. 代码如下: int id = 1000; //Request.QueryString["id"] ...
最新文章
- a10双核(8dm1)-android4.1.1-v2.07,台电官方论坛 - A10 双核 8DM1 2G ROM 4.0.4 固件 - 平板笔记本...
- 廖的python教程_廖雪峰的Python3.x教程.pdf
- MySQL-索引优化篇(4)_索引的维护
- JavaScript - JavaScript自定义弹出对话框
- 【Apscheduler】不生效也不报错,提示No handlers could be found for logger “apscheduler.executors.default”
- mybatis中foreach标签详解
- python装饰器函数后执行_Python装饰器限制函数运行时间超时则退出执行
- C++之用std::nothrow分配内存失败不抛异常
- java单终端登陆_配置终端服务单一登录
- SpringBoot的Bean之@ConditionalOnBean与@ConditionalOnClass
- FR获取当前控件位置值并转换(或赋值可参考)
- AliOS-Things开发入门
- 聪明的人脸识别4——Pytorch 利用Retinaface+Facenet搭建人脸识别平台
- LCD屏幕,IPS屏幕,TFT屏幕,SLCD屏幕和AMOLED手机屏幕介
- linux下ssh、scp无密钥登陆方法
- [PPTX解析] 图片效果算法篇:设置透明色
- Python调用OpenAI API示例
- 【干货分享】微信与ERP支付互通 世界会怎样-解决方案推荐
- ChatGPT不止是对话机器人
- 红队攻击思路知识框架
热门文章
- Win10笔记本电脑无法连接Wifi或连接上Wifi无网络访问
- Mac系统终端通过ssh连接CentOS
- linux的dns怎么配置正向区域文件,Linux学习之路之DNS的配置文件和正解区域文件、反解区域文件...
- 保定政治副中心虚火褪去 二手房降价50万出售
- 关于win10笔记本无法连接外接显示器及连接HDMI显示器后没有声音的解决方案
- 基于PING命令的主机探测
- USB Typec转HDMI方案
- 字节跳动换老板了,我面试也扑街了...
- PLC单片机实验开发系统装置QY-DPJ12
- 清理数据库软件(暴力删除)