标题:关于判断int型是否越界的问题?
只看楼主
zxhutu
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2005-5-6
 问题点数:0 回复次数:3 
关于判断int型是否越界的问题?
请教各位
我在写charToInt的时候对于int型超过最大值的错误判断的时候,不知道有什么好的办法
我现在的处理是定义一个long型的result,然后判断计算的值是否超过int型的最大值,可是总觉得这样做不太好,至少多占用了空间丫,请问各位有什么好的方法么,请不吝赐教!

int StrToInt(const char* szStr){
    long  lResult = 0;
    const int MAX_INT_VALUE = 2147483647;   
    const char* szTmp = szStr;
   
    if( szStr == NULL )
        return -1;
        
    while (*szTmp){
        if(*szTmp >= '0' && *szTmp <= '9'){
            lResult = lResult*10+(*szTmp-'0');//
        }
        else {
     return -1;
        }
        
        if( lResult > MAX_INT_VALUE ) return -1;//out of range
        szTmp++;
    }
   
    return (int)lResult;
}
搜索更多相关主题的帖子: int 越界 判断 
2005-05-06 00:11
kings169524
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2005-5-5
得分:0 
如果是把字符串转成INT型,为什么要用const char*?
CONST只能传常量,不能传变参。

2005-05-06 12:28
apodemas
Rank: 1
等 级:新手上路
帖 子:153
专家分:0
注 册:2005-4-22
得分:0 
那个,解决不了您的问题,我还想问个问题:
while (*szTmp)有什么作用?
即使后面添加了变化,但*szTmp本身被定义为指向常量的指针而其内容不会变的啊?

2005-05-06 17:05
lwei
Rank: 5Rank: 5
等 级:职业侠客
威 望:3
帖 子:197
专家分:369
注 册:2005-5-4
得分:0 
以下是引用kings169524在2005-5-6 12:28:13的发言: 如果是把字符串转成INT型,为什么要用const char*? CONST只能传常量,不能传变参。
因为要保证函数不修改传入的字符传, 所以使用了const, 这是一个比较好的编程习惯

2005-05-14 15:30



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




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

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