?
#include?<climits>
bool?Str2Int(const?char?*s,?int?*result)

{
????int?digit;
????*result?=?0;
????bool?isNeg?=?false;
????int?i?=?0;
????if?(s[0]?==?'-')
????
{
????????isNeg?=?true;
????????i?=?1;
????}
????
????while?(s[i]?>=?'0'?&&?s[i]?<=?'9')
????
{
????????if?(*result?<=?(INT_MAX?-?(digit?=?s[i++]?-?'0'))?/?10)
????????
{
????????????*result?=?10?*?(*result)?+?digit;????
????????}?
????????else
????????
{
????????????return?false;
????????}
????}//while
????
????if?(!s[i]?&&?s[0])
????
{
????????if?(isNeg)
????????????*result?*=?-1;
????????return?true;
????}
????else
????
{
????????return?false;
????}
}混雜合法字串
#include?<climits>
bool?MixedStr2Int(const?char?*s,?int?*result)

{
????int?digit;
????*result?=?0;

????for?(int?i?=?0;?s[i]?!=?'\0';?i++)
????
{
????????if?(s[i]?>?'0'?&&?s[i]?<?'9')
????????
{
????????????if?(*result?<=?(INT_MAX?-?(digit?=?s[i]?-?'0'))?/?10)
????????????
{
????????????????*result?=?10?*?(*result)?+?digit;????
????????????}?
????????????else
????????????
{
????????????????return?false;
????????????}
????????}?
????????
????}//for
????return?true;
}
bool
?Int2Str(
int
?n,?
char
?
*
arr,?
int
?len)
{
????
int
?start?
=
?
0
,?end?
=
?
0
;
????
bool
?isNeg?
=
?
false
;
????
if
?(n?
<
?
0
)
????
{
????????n?
*=
?
-
1
;
????????isNeg?
=
?
true
;
????}
????
do
?
????
{
????????arr[end
++
]?
=
?n?
%
?
10
?
+
?
'
0
'
;
????????n?
/=
?
10
;
????????len
--
;
????????
????}
?
while
(n?
&&
?(len?
>
?
0
));
????
if
?(len?
<=
?
0
)
????
{
????????
return
?
false
;
????}
????
if
?(isNeg)
????
{
????????
if
?(len?
>
?
1
)
????????
{
????????????arr[end
++
]?
=
?
'
-
'
;
????????????len
--
;
????????}
????????
else
?????????????
return
?
false
;
????}
????arr[end
--
]?
=
?
'
\0
'
;
????
while
?(start?
<
?end)
????
{
????????arr[start]?
^=
?arr[end];
????????arr[end]?
^=
?arr[start];
????????arr[start]?
^=
?arr[end];
????????start
++
;
????????end
--
;
????}
????
return
?
true
;
}


