Chinaunix首页 | 论坛 | 博客
  • 博客访问: 41571
  • 博文数量: 32
  • 博客积分: 1326
  • 博客等级: 中尉
  • 技术积分: 330
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-25 18:13
文章分类

全部博文(32)

文章存档

2010年(32)

我的朋友
最近访客

分类: WINDOWS

2010-07-03 23:38:02

#include<stdio.h>

#define bool int
#define false 0
#define true 1

int _strlen(char* pszName)
{
    int nLen = 0;
    while(*pszName)
    {
        nLen++;
        pszName++;
    }    
    return nLen;
}

bool _isdigit(char szName)
{
    bool bResult = false;
    if (szName >= '0' && szName <= '9')
    {
        bResult = true;
    }
    return bResult;
}

int atoi(char *pszName)
{
    if (NULL == pszName)
    {
        return 0;
    }
    int nLen = _strlen(pszName);
    if (nLen <= 0)
    {
        return 0;
    }
    
    int nIndex = 0;
    bool bFlag = true;
    if (!_isdigit(pszName[0]))
    {
        if ('-' == pszName[0])
        {
            bFlag = false;
        }
        else if ('+' == pszName[0])
        {
            bFlag = true;
        }
        else
            return 0;

        nIndex++;
    }
    
    int nResult = 0;
    for (; nIndex < nLen; nIndex++)
    {
        if (!_isdigit(pszName[nIndex]))
        {
            break;
        }
        nResult = nResult * 10 + (pszName[nIndex] - '0');
    }
    if (!bFlag)
    {
        nResult = -nResult;
    }
    
    return nResult;
}

int main()
{
    char* pszNum = "456";
    int nNum = atoi(pszNum);
    printf("%d\n", nNum);
    return 0;
}


阅读(309) | 评论(0) | 转发(0) |
0

上一篇:微软早期员工

下一篇:atoi API

给主人留下些什么吧!~~