#include<stdio.h>
enum Status {KValid = , KInvalid};
int g_nStatus = KValid;
long StrToIntCore(char *str,bool minus)
{
long num = ;
while (*str !='\0')
{
if (*str >'' && *str<'')
{
int flag = minus ? -:;
num = num * + flag*(*str - '');
if ((!minus && num > 0x7FFFFFFF)||(minus && num <(signed int)0x80000000))
{
num = ;
break;
}
str++;
}
else
{
num = ;
break;
}
}
if (*str == '\0')
{
g_nStatus = KValid;
}
return num;
}
int StrToInt(char *str)
{
g_nStatus = KInvalid;
long num = ;
if (*str != NULL && *str !='\0')
{
bool minus = false;
if(*str == '+')
str++;
else if(*str == '-')
{
str++;
minus = true;
}
if (*str !='\0')
{
num = StrToIntCore(str,minus);
}
}
return int(num);
} void main()
{
printf("%d",StrToInt("-12"));
}

在前面的代码中,把空字符串“”和只有一个正号或负号的情况都考虑到了。同事还考虑整数的最大值是0x7fffffff,最小值0x80000000,一次要分两种情况判断溢出。

模仿c的字符转整数函数 atoi的更多相关文章

  1. 实现字符串转化为整数函数atoi()函数

    函数原型: int atoi(const char *nptr); 函数说明: 参数nptr字符串,如果第一个非空格字符存在,并且,如果不是数字也不是正负号则返回零,否则开始做类型转换,之后检测到非数 ...

  2. C语言函数--atoi

          在Java语言中,由于面向对象的思想,它对基本数据类型也进行了相应的封装,例如 int 就封装成了 Integer 类,这无疑会使我们的操作方便了许多,例如,有一个字符串,我想把它转换为i ...

  3. [Swift]字符串根据索引获取指定字符,依据ASCII实现字符和整数的相互转换

    ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧 ...

  4. (查找函数+atoi)判断与(注册函数+strcmp函数)判断两种方法

    loadrunner中接口判断的2中方法    如下: 1. ●查找函数web_reg_find() ● atoi():将字符串转换为整型值 作比较  > 0 Action() { //检查点函 ...

  5. leetcode-13罗马字符转整数

    leetcode-13罗马字符转整数 算法:转换的规律是先逐字符按照对应的阿拉伯数字累加,然后对于特殊的(I.X.C出现在左侧)要处理.处理方法:出现特殊字符组合减去双倍的左侧字符(在开始的处理中已经 ...

  6. AS3中ASCII码和字符互转函数

    AS3中ASCII码和字符互转函数 字符转成ASCII码: 格式:字符串变量.charCodeAt(字符位置); var str:String = “A”; trace(str.charCodeAt( ...

  7. 在论坛中出现的比较难的sql问题:18(字符合并 整数解析星期几)

    原文:在论坛中出现的比较难的sql问题:18(字符合并 整数解析星期几) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉得 ...

  8. Mysql连接字符,字段函数concat()

    Mysql连接字符,字段函数concat() 可将多个字符串或字段连接,多个参数以逗号隔开 select concat('现在是:',new_date) from work

  9. C语言中的字符和整数之间的转换

    首先对照ascal表,查找字符和整数之间的规律: ascall 控制字符  48  0  49  1  50  2  51  3  52  4  53  5  54  6  55  7  56  8 ...

随机推荐

  1. gcd&&lcm

    1011 最大公约数GCD 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 输入2个正整数A,B,求A与B的最大公约数.   Input 2个数A,B,中 ...

  2. NSOJ Minimum Transport Cost

    These are N cities in Spring country. Between each pair of cities there may be one transportation tr ...

  3. 代码走查工具StyleCop建议采用的规则总结

    代码走查工具StyleCop建议采用的规则总结 续接上篇:代码走查工具篇SytleCop的规则总结与翻译,本篇主要是以我个人的观点总结的一份建议使用的Rule点. 建议使用的Rule点 1.公共的接口 ...

  4. Sicily 1732 Alice and Bob (二进制最大公约数)

    联系: http://soj.me/1732 Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description: Alice is a b ...

  5. 心有多宽 路就有多宽-- BreezeMH源码公布

    非常多话想说,但不知道从何说起~ 去年暑假做自己的第一个外挂,然后是Breeze‘s魔兽系列工具,測试版.正式版,看着自己进大学时的梦想慢慢的变成现实,那种喜悦感无法言表,于是就想着让很多其它的在校大 ...

  6. 【百度地图API】如何使用suggestion--下拉列表方式的搜索建议

    原文:[百度地图API]如何使用suggestion--下拉列表方式的搜索建议 摘要: 百度地图上有一个很强大的搜索建议功能,以下拉列表的方式展示出来.比如,输入“百度”,下拉列表中就会出现“北京市海 ...

  7. 认识bash这个shell

    我们通过shell将我们输入的命令与内核通信,好让内核可以控制硬件来正确无误地工作bash是我们Linux默认的shell 用户界面(Shell,application)--------核心(Kern ...

  8. CloudNotes

    CloudNotes 今天,我发布了CloudNotes的一个更新版本:1.0.5484.36793.这个版本与1.0.5472.20097不同的是,它拥有增强的笔记列表,与之前单调的列表系统相比,新 ...

  9. [Unity-7] Update和FixedUpdate

    1.Update和FixedUpdate这是Unity既用内提供的帧功能接口相关联. Update():这个函数里面的内容每一帧都会被运行一次.这个函数有一个特点,那就是运行的频率等于帧率.而这个帧率 ...

  10. php soap调用asp.net webservice

    原文:php soap调用asp.net webservice 首先做一下准备工作,找到安装环境里的php.ini把;extension=php_soap.dll去掉前面的;.我这里使用的是wamp, ...