整数与字符串互相转换

整数与字符串互相转换
加了对负数和溢出的处理,其他出错考虑较少,凑合看
 
#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 ;
}

你可能感兴趣的:(整数与字符串互相转换)