Fkt: gibt bei Eingabe(0), 00 als string zurück



  • Hallo,

    bei folgender Funktion hab ich das Problem, dass die Zahl 0 als 00 dargestellt wird.

    #define TEST_STRING_0     0 
    unsinged char string[3];
    
    unsigned char *ntoa_r(unsigned int in, unsigned char *buf, int bufsize)
    {
    	char *p = (char *)∈
    	#define	UC_(b)	(((int)b)&0xff)
    
    	memset((void *)buf, 0x00, bufsize); 
    	(void)snprintf((char *)buf, bufsize,
             "%d%d%d%d", UC_(p[0]), UC_(p[1]), UC_(p[2]), UC_(p[3]));
    	return (buf);
    }
    
    //aufruf 
    ntoa_r(TEST_STRING_0, (unsigned char *)&str[0], 3);
    

    Der Aufruf der Funktion ntoa_r muss verschieden stellige Zahlen in Stringform wandeln können. Auch weiß ich nicht immer die Anzahl der Stellen die eine Zahl einnehmen wird (ist variabel).

    Gruß
    patrick



  • ^^warum so umständlich? benutz snprintf doch direkt. oder brauchste 'ne gewisse anzahl führender nullen?
    🙂


Anmelden zum Antworten