标题:因为是电子版的书,所以不确定程序是不是正确的,求大能鉴定
只看楼主
核晴核理
Rank: 3Rank: 3
来 自:北京
等 级:论坛游侠
帖 子:129
专家分:169
注 册:2012-6-14
结帖率:84.21%
已结贴  问题点数:20 回复次数:3 
因为是电子版的书,所以不确定程序是不是正确的,求大能鉴定
程序代码:
#include<ctype.h>                 //程序功能是将字符转换成整形数
int atoi(char s[])
{
int i,n,sign;
for(i=0;isspace(s[i]);i++)         //跳过空白符
;
sign=(s[i]=='-')?-1:1;             //这个位置是不是应该先给i符个初值0呀?不然判断的是字符串尾是不是减号,还是说另有深意?
if(s[i]=='+'||s[i]=='-')           //跳过符号
i++;
for(n=0;isdigit(s[i]);i++)
n=10*n+(s[i]-'0');
return sign*n;
}


[ 本帖最后由 核晴核理 于 2012-11-19 11:24 编辑 ]
搜索更多相关主题的帖子: 电子版 电子版 
2012-11-19 11:23
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:10 
这还需要鉴定吗  

自己多做几次测试不就OK

DO IT YOURSELF !
2012-11-19 11:24
jk_love
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:196
专家分:965
注 册:2012-10-22
得分:10 
自己测试下吧,另外这个atoi的源码
isspace(int x)
{
 if(x==' '||x=='\t'||x=='\n'||x=='\f'||x=='\b'||x=='\r')
  return 1;
 else  
  return 0;
}
isdigit(int x)
{
 if(x<='9'&&x>='0')         
  return 1;x`
 else
  return 0;

}
int atoi(const char *nptr)
{
        int c;              /* current char */
        int total;         /* current total */
        int sign;           /* if '-', then negative, otherwise positive */

        /* skip whitespace */
        while ( isspace((int)(unsigned char)*nptr) )
            ++nptr;

        c = (int)(unsigned char)*nptr++;
        sign = c;           /* save sign indication */
        if (c == '-' || c == '+')
            c = (int)(unsigned char)*nptr++;    /* skip sign */

        total = 0;

        while (isdigit(c)) {
            total = 10 * total + (c - '0');     /* accumulate digit */
            c = (int)(unsigned char)*nptr++;    /* get next char */
        }

        if (sign == '-')
            return -total;
        else
            return total;   /* return result, negated if necessary */
}

2012-11-19 11:37
核晴核理
Rank: 3Rank: 3
来 自:北京
等 级:论坛游侠
帖 子:129
专家分:169
注 册:2012-6-14
得分:0 
好吧,谢谢两位,我懂了,那里i是指跳过开头的空白符后的第一个字符是不是负号。。。
2012-11-19 13:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-387530-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.900514 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved