Return to Snippet

Revision: 43733
at March 30, 2011 01:44 by vikiyou


Initial Code
/**                                                                                                                                                          
 * C++ version 0.4 char* style "itoa":                                                                                                                       
 * Written by Lukás Chmela                                                                                                                                   
 * Released under GPLv3.                                                                                                                                     
*/

char* itoa_c(int value, char* result, int base)                                                                                                          
{                                                                                                                                                        
    // check that the base if valid                                                                                                                      
    if ( base < 2 || base > 36 ) {                                                                                                                       
	*result = '\0';                                                                                                                                  
	return result;                                                                                                                                   
    }                                                                                                                                                    
																			  
    char* ptr = result, *ptr1 = result, tmp_char;                                                                                                        
    int tmp_value;                                                                                                                                       
																			  
    do {                                                                                                                                                 
	tmp_value = value;                                                                                                                               
	value /= base;                                                                                                                                   
	*ptr++ = "zyxwvutsrqponmlkjihgfedcba9876543210123456789abcdefghijklmnopqrstuvwxyz"[35 + (tmp_value - value * base)];                             
    } while ( value );                                                                                                                                   
																			  
    // Apply negative sign                                                                                                                               
    if ( tmp_value < 0 )                                                                                                                                 
	*ptr++ = '-';                                                                                                                                    
    *ptr-- = '\0';                                                                                                                                       
																			  
    while ( ptr1 < ptr ) {                                                                                                                               
	tmp_char = *ptr;                                                                                                                                 
	*ptr-- = *ptr1;                                                                                                                                  
	*ptr1++ = tmp_char;                                                                                                                              
    }                                                                                                                                                    
																			  
    return result;                                                                                                                                       
}

Initial URL
http://www.strudel.org.uk/itoa/

Initial Description
A implementation for itoa with c.
itoa is function that convert a integer to a string.

Initial Title
itoa implement for c

Initial Tags
c

Initial Language
C