字符转整数 算法
来源:互联网 发布:js如何设置按钮 编辑:程序博客网 时间:2024/06/05 20:16
把一个字符串转成整数:
StrToInt.cpp
#include <iostream>
using namespace std;
long long strToInt(const char* str)
{
long long num = 0;
bool minus = false;
cout << "befor To int :" << str << endl;
if(str != NULL && *str != '\0'){
if(*str == '+'){
str++;
minus = false;
}
if(*str == '-'){
str++;
minus = true;
}
while(*str != '\0'){
if(*str >= '0' && *str <='9'){
int flag = minus ? -1 : 1;
//核心语句就这句,其他都是健壮性处理
num = num*10 + flag*(*str - '0');
//是否超出范围
if((!minus && num >0x7FFFFFFF) || (minus && (signed int)num <0x80000000)){
num =0;
cout << "the range of number invalid! \n";
break;
}
str++;
}else{
num = 0;
cout << "the char of num invalid!\n";
break;
}
}
}
cout << "after to Int :" << num << endl;
return num;
}
int main(){
//测试
strToInt("123");
strToInt("-123");
strToInt("123aaa");
strToInt("");
strToInt("123456789");
strToInt("123999999999999999999999999999999999999");
return 0;
}
测试结果:
PC:~/algorithm$ g++ StrToInt.cpp -o StrToInt
PC:~/algorithm$ ./StrToInt
befor To int :123
after to Int :123
befor To int :-123
after to Int :-123
befor To int :123aaa
the char of num invalid!
after to Int :0
befor To int :
after to Int :0
befor To int :123456789
after to Int :123456789
befor To int :123999999999999999999999999999999999999
the range of number invalid!
after to Int :0
- 字符转整数 算法
- 递归算法把整数字符转换为整数
- C语言--字符转整数
- 整数转字符串算法
- 字符串转整数算法
- Microsoft100——20.字符转整数
- 罗马字符与整数互转
- 算法--写一个函数检查字符是否是整数,如果是返回其整数值
- 算法学习--字符串转整数
- 整数转字符与字符转整数的C系统函数
- 整数算法
- 数字字符链表转整数
- 数字字符转化整数
- 数字字符转化整数
- 整数,字符和字符串
- 简单的算法问题5——整数转换为罗马字符
- 整数划分算法原理与实现(转)
- 32位整数转二进制字符串算法
- Python:实现2+22+222+2222+22222
- Java多线程(三)同步与锁定
- go笔记[2]--路由
- String的截取
- 全网最!详!细!tarjan算法讲解
- 字符转整数 算法
- Python统计字符出现次数
- Linux学习之路-程序控制结构
- TensorFlow指定特定GPU以及占用显存的比例
- centos 6下搭建网站
- 单链表的归并排序
- <8/22>集训日记
- Python网络爬虫与信息提取-Day1-requests库(1)
- HDU1269 迷宫城堡 强联通分量Tarjan算法