- 在线时间
- 0 小时
- 最后登录
- 2005-5-5
- 注册时间
- 2005-5-5
- 听众数
- 0
- 收听数
- 0
- 能力
- 0 分
- 体力
- 55 点
- 威望
- 0 点
- 阅读权限
- 20
- 积分
- 17
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1
- 主题
- 1
- 精华
- 0
- 分享
- 0
- 好友
- 0
升级   12.63% 该用户从未签到
 |
< >我写了一个这样的函数,想把字符串转化为int型的,代码如下,</P>
) o3 u* b% b( g; O* N }< >其中的int超出了取值范围的判断好像不太合理,请各位指教!</P>% l; Z* @: o/ u
< >int StringToInt(const char* szStr){
- X4 G. n$ q$ Y9 `/ }! m4 R2 O int nResult = 0;
. V" V# A1 f( w: j0 l. ^4 E //int nValue = 0; ) c+ e' L, H( {' P% y- i4 ~7 }
const char* szTmp = szStr;/ q3 E2 T$ t$ K0 H( F2 V; O/ o9 a2 A) G
while (*szTmp){9 G6 ^, ^9 _0 Z6 ?
if(*szTmp >= 48 && *szTmp <= 57){ . b# s: ~" U$ l5 U4 v; [
nValue = *szTmp-48;
+ f% H, [/ K, c3 m& N; q7 b9 n- m nResult = nResult*10+nValue;
% p9 l" y* \- _1 a" R) ? }
: l8 r4 K3 N7 s& L( T1 s" Z else {& Y: ?+ x2 _5 b y! c: B
return -1;4 P- B2 z* g/ N) V8 Q5 g2 H5 a
}
0 Q7 o- K n; s if( nResult < 0 ) return -1;//out of range*****就是这里了!
7 O: L. d! P3 g/ A* T+ a szTmp++;8 Q; ?$ ?7 }5 l. b k2 @& X9 r8 N
}
5 q |# K) N4 q( z5 N1 F return nResult;
; E8 Z2 g& ^6 s2 @}1 I$ O% n v5 ~) @6 N. \5 m
</P> |
zan
|