自己实现StrToInt函数

int StrToInt(const char*pStr,int defaultVal)
{
    //空指针访问
    if(pStr==0)
        return defaultVal;
    int result=1,tem=0 ;
    //位数
    int bitNum=0;
    //符号
    int sign=1 ;
    const char *pTem=pStr ;
    //检测第一个字符是不是-或者数字
    if(*pTem==‘-‘)
    {
        sign=-1;
        //是否到了结尾或者中间有‘\0‘
        if((*++pTem)!=0)
        {
            if(*pTem>‘0‘&&*pTem<=‘9‘)
            {
                //-1 *=N
                result*=(*pTem-‘0‘);
                //计算位数
                bitNum=(strlen(pStr)-2);
            }
            else
            {
                return defaultVal;
            }
        }
        else
        {
            return defaultVal;
        }
    }
    else if(*pTem>‘0‘&&*pTem<=‘9‘)
    {
        result=(*pTem-‘0‘);
        //计算位数
        bitNum=(strlen(pStr)-1);
    }
    else
    {
        return defaultVal;
    }
    pTem++;
    //检测剩下的字符串有没有不合法的‘\0‘截断
    while(*pTem!=0)
    {
        //不合法
        if(*pTem<‘0‘||*pTem>‘9‘)
            return defaultVal;
        //计算结果 tem=tem*10+n
        tem=tem*10+(*pTem-‘0‘) ;
        pTem++;
    }
    //组合首位和后续数字
    return (tem+result*pow(10,bitNum))*sign;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-05 19:29:23

自己实现StrToInt函数的相关文章

Delphi 7.0常用函数速查手册

函数由一句或多句代码组成,可以实现某个特定的功能.使用函数可以使代码更加易读.易懂,加快编程速度及减少重复代码.过程与函数类似,过程与函数最重要的区别在于,过程没有返回值,而函数能有返回值. 在Delphi 7.0中,已为我们定义好了非常多的函数,大致分类有6种:数据类型转换函数.字符串.数组操作函数.文件.磁盘操作函数.内存.指针操作函数.数学运算函数.日期函数. 在Delphi中调用函数,一般情况下可以直接使用函数即可,但由于有一些函数未包含在Uses中列出的单元中(默认单元有 Window

Delphi数据类型转换(有几个字符串函数没见过,比如StringToWideChar和WideCharToString)

DateTimeToFileDate                  函数                     将DELPHI的日期格式转换为DOS的日期格式         DateTimeToStr                          函数                     将日期时间格式转换为字符串         DateTimeToString                      函数                     将日期时间格式转换为字符串 

Delphi 数据、文件常用函数

一.数据类型转换函数 在我们编写程序当中,根据不同情况,会使用到多种数据类型.当要对不同的类型进行操作时,必须要将不同的类型转换成同样的类型.因此熟练地掌握数据类型的转换是非常重要的. 1.FloatToStr 功能说明:该函数用于将"浮点型"转换成"字符型". 参考实例: Edit1.Text := FloatToStr(1.981); 2.IntToStr 功能说明:该函数用于将"整数型"转换成"字符型". 参考实例: S

Delphi常用函数

Abort                      函数 引起放弃的意外处理 Abs(real)                  函数 绝对值函数 AddExitProc                函数 将一过程添加到运行时库的结束过程表中 Addr(variant)              函数 返回指定对象的地址 AdjustLineBreaks           函数 将给定字符串的行分隔符调整为CR/LF序列 AllocMem                   函数 在堆栈

delphi常用函数大全(转)

Abort函数引起放弃的意外处理Abs函数绝对值函数AddExitProc函数将一过程添加到运行时库的结束过程表中Addr函数返回指定对象的地址AdjustLineBreaks函数将给定字符串的行分隔符调整为CR/LF序列Align属性使控件位于窗口某部分Alignment属性控件标签的文字位置AllocMem函数在堆栈上分配给定大小的块AllowGrayed属性允许一个灰度选择AnsiCompareStr函数比较字符串(区分大小写)AnsiCompareText函数比较字符串(不区分大小写)A

DELPHI下API简述(1800个API)

DELPHI下API简述 http://zero.cnbct.org/show.asp?id=144 auxGetDevCaps API 获取附属设备容量 auxGetNumDevs API 返回附属设备数量 auxGetVolume API 获取当前卷设置 auxOutMessage API 向输出设备发送消息 auxSetVolume API 设置附属设备卷 AbortDoc API 终止一项打印作业 AbortPath API 终止或取消DC中的一切路径 AbortPrinter API

Delphi 常见数据类型转换

不同的类有不同的成员,一般子类的成员是在父类的成员的后面增加了新的成员,如果子类转为父类,那这些新增加的成员虽然还存在,但是就不可以访问得到了.如果父类转为子类,那可能导致不可预知的错误,因为某个成员的指针指向的地址根本就不是具有实际成员.类型的转换也有很多类的,有隐性的和显性的,一些专用的类型转换函数,会重新建立一个新类型目标对象,然后把就类型的数值移动过去,然后销毁旧对象.一些隐性的转换,对象本身没改变,就把指针类型换一了一下.@用于取地址!最方便的用法:在调用Api的时候,举个例子:我们调

delphi控件属性大全-详解-简介

button 组件: CAPTION 属性 :用于在按钮上显示文本内容Cancel     属性:是否设置成默认的取消按钮,当设置为真的时候(true) 按ESC触发改按钮的事件!Default 属性:是否设置成默认的确认按钮,当设置为真的时候 按ENTER键的时候触发事件Hint 属性:设置当鼠标在按钮上短暂停留是显示的提示内容.Showhint 属性: 是否显示提示内容默认为假! Bitbtn 组件Kind 属性: 他的值就是位图按钮组件上所显示的图标!GLYPH 属性: 用于在位图按钮上显

delphi控件属性和事件

常用[属性] Action:该属性是与组件关联的行为,允许应用程序集中响应用户命令 Anchors:与组件连接的窗体的位置点 Align:确定组件的对齐方式 AutoSize:确定组件是否自动调整其大小 BiDiMode:(所有组件) 为从右向左写的语言提供支持 BoundsRect:定义组件边框矩形(只适用于运行时) Borderwidth:(窗口化组件)边框的宽度 BorberStyle:设置组件边框形状(样式) Brush:可确定组件的风格和颜色 Caption:使用该属性可指定标注组件的