[算法练习] 把字符串转换成整数
题目说明:
输入一个表示整数的字符串,把该字符串转换成整数并输出。例如输入字符串"345",则输出整数345。
程序代码:
#include <gtest/gtest.h> using namespace std;int StrToInt(const char* szValue, int nBase = 0, bool* bValid = NULL) { long long nValue = 0;int nSign = 1;if (bValid){*bValid = false;}if (!szValue){return 0;}if (nBase < 0 || nBase == 1 || nBase > 36){return 0;}char cData = *szValue++;while(cData <= ' ') // skip whitespace {cData = *szValue++;}if (cData == '+'){cData = *szValue++;}else if(cData == '-'){cData = *szValue++;nSign = -1;}if (nBase==0){if (cData != '0')nBase = 10;else if (*szValue == 'x' || *szValue == 'X')nBase = 16;elsenBase = 8;}if (nBase == 16){if (cData == '0' && (*szValue == 'x' || *szValue == 'X')){szValue++;cData = *szValue++;}}while (cData != '\0'){int nData = 0;if (cData >= '0' && cData <= '9'){ nData = cData-'0';}else if (cData >= 'A' && cData <= 'Z'){nData = cData - 'A' + 10;}else if(cData >= 'a' && cData <= 'z'){nData = cData - 'a' + 10;}else{break;}if (nData >= nBase) // bad digit {break;}nValue = (nBase * nValue) + nData; if (nValue > std::numeric_limits<int>::max()){nValue = 0;break;}cData = *szValue++;}if (bValid){*bValid = (cData == '\0');}return (int)(nSign * nValue); }TEST(Pratices, tStrToInt) { // NULL -> 0// "" -> 0 // "0" -> 0// "+123" -> 123// "-123" -> -123// "123" -> 123 ASSERT_EQ(StrToInt(NULL), 0);ASSERT_EQ(StrToInt(""), 0);ASSERT_EQ(StrToInt("0"), 0);ASSERT_EQ(StrToInt("+123"), 123);ASSERT_EQ(StrToInt("-123"), -123);ASSERT_EQ(StrToInt("123"), 123);// 16进制// 0x10 -> 16// 0x0 -> 0// 0x123 -> 291ASSERT_EQ(StrToInt("0x10"), 16);ASSERT_EQ(StrToInt("0x10",16), 16);ASSERT_EQ(StrToInt("0x0",16), 0);ASSERT_EQ(StrToInt("-0x123"), -291);// 8进制// 010 -> 8 // 0123 -> 83ASSERT_EQ(StrToInt("010"), 8);ASSERT_EQ(StrToInt("0123",8), 83);}
转载于:https://www.cnblogs.com/Quincy/p/4870814.html
[算法练习] 把字符串转换成整数相关推荐
- 算法笔记_028:字符串转换成整数(Java)
1 问题描述 输入一个由数字组成的字符串,请把它转换成整数并输出.例如,输入字符串"123",输出整数123. 请写出一个函数实现该功能,不能使用库函数. 2 解决方案 解答本问题 ...
- 程序员面试题精选100题(17)-把字符串转换成整数[算法]
题目:输入一个表示整数的字符串,把该字符串转换成整数并输出.例如输入字符串"345",则输出整数345. 分析:这道题尽管不是很难,学过C/C++语言一般都能实现基本功能,但不同程 ...
- 【算法】剑指 Offer 67. 把字符串转换成整数
1.概述 写一个函数 StrToInt,实现把字符串转换成整数这个功能.不能使用 atoi 或者其他类似的库函数. 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止. 当 ...
- oracle 转化为整数,字符串转换成整数——从源码学习
字符串转换成整数:输入一个表示整数的字符串,把该字符串转换成整数并输出,例如输入字符串"345",则输出整数345. 在笔试面试中,atoi 即「字符串转换成整数」是一个经典问题了 ...
- 在要求输入数字处找到非数字字符_剑指 Offer 67. 把字符串转换成整数 leetcode 剑指offer系列...
点击专辑上方"蓝字"关注我吧 题目难度: 中等 原题链接[1] 今天继续更新剑指 offer 系列, 老样子晚上 6 点 45 分准时更新公众号 每日精选算法题, 大家记得关注哦~ ...
- 面试题67. 把字符串转换成整数
题目 写一个函数 StrToInt,实现把字符串转换成整数这个功能.不能使用 atoi 或者其他类似的库函数. 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止. 当我们 ...
- 程序员编程艺术第三十 三十一章 字符串转换成整数,通配符字符串匹配
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 第三十~ ...
- 字符串转换成整数,带通配符的字符串匹配
之前本一直想写写神经网络算法和EM算法,但写这两个算法实在需要大段大段的时间,而平时上班,周末则跑去北大教室自习看书(顺便以时间为序,说下过去半年看过的自觉还不错的数学史方面的书:<数理统计学简 ...
- 将数字字符串转换成整数
问题 将数字字符串转换成整数 算法分析 算法步骤如下: 算法实现 #include <stdio.h> int atoi(char s[ ]); main() {char s[20];sc ...
- 把字符串转换成整数(atoi)
题目 描述 写一个函数 StrToInt,实现把字符串转换成整数这个功能.不能使用 atoi 或者其他类似的库函数.传入的字符串可能有以下部分组成: 1.若干空格 2.(可选)一个符号字符('+' 或 ...
最新文章
- Error creating bean with name 'defaultHandlerMapping' defined in ServletContext resource
- 4·24 dene2004's cnBlog 启 SP1
- java加密解密代码_base64位加密解密原理及js代码实现
- 开源重量级的流程引擎或UI引擎
- JAVA泛型只能用引用类型_Java泛型和设计模式:不参数化对泛型类型的引用总是一件坏事吗?...
- 【网络安全工程师面试合集】—黑客常用的端口及攻击方法汇总
- [C#][Quartz]帮助类
- Prettier 代码格式化工具使用详解
- PandoraBox潘多拉无线桥接(中继)使用方法和无法使用解决----小米mini小米3路由
- 指数解读:恒生指数(Hang Seng Indexes)
- 12092009小记
- python计算均值方差模型_如何从Python中的FIGARCH模型中得到条件均值和标准差?...
- Dao,Service,Controller层作用
- 【JavaSE基础】00-计算机基础及环境搭建
- 【2023 · CANN训练营第一季】昇腾AI入门课(PyTorch)第一章学习笔记——Hi Ascend
- 51单片机控制DHT11温湿度传感器,并使用OLED屏幕显示
- opencv21:Histograms直方图-查找、绘制和分析
- 【若泽大数据实战第七天】MySQL在DBeaver上的使用
- 【自然语言处理】【大模型】Chinchilla:训练计算利用率最优的大语言模型
- Python 酷q,踩坑粗记,用慕晓飞大神的sdk
热门文章
- iOS 浅复制和深复制的深层理解,含示例
- 《GO并发编程实战》—— 临时对象池
- KMP + 求最小循环节 --- HDU 1358 Period
- Collections.sort new Compartor 用法
- [转载]返璞归真 asp.net mvc (10) - asp.net mvc 4.0 新特性之 Web API
- python如何删除对象属性_如何销毁python中属性中的对象?
- 拉取远程分支到本地分支_想买的保险本地没有分支机构怎么办?异地投保理赔难吗?...
- linux 档案类型s,深入了解Linuxs归档和压缩命令 | MOS86
- 使用apktool来解包和重新打包
- ER图设计数据库 练习题