Hallo,
*** FLAX-ON
na da hab ich Euch ja erwischt. Mir erzählen, streams seien so aufwändig
und hier eine einfaches str_Upper() mit malloc() verbasteln.
*** FLAX-OFF
Also die Lösung hier mit malloc() geht genau so lange bis der Speicher
verbraucht ist, es sei denn, das rufende Programm gibt ihn wieder frei.
Ich habe ein ähnliches Problem, wenn ich Zahlen schnell und kompakt zru
Ausgabe formatieren will und habe daz ein Modul geschrieben, welches
einen char buffer(17) enthält. Das reicht für Integer, Hex und uint16
nach binär inclusive der 0.
Da ich auf dem Display keinen Zeichenmatshc haben will muss ich eh für
eine kontrollierte Ausgabe sorgen. Bei mir erfolgt doe Verarbeitung im
Main, also ist das gegeben und alle Funktionen können den Puffer
gemeinsam nutzen:
char buffer(17);
char * int2bin (unsingne int n) {
int i = 16;
while(i) {
i--;
buffer(i) = '0' + (n & 1);
n = n>>1;
}
return &buffer;
}
char * int2hex (unsingne int n) {
int i = 4;
char d;
while(i) {
i--;
d = n & 0xf;
if (d<10)
buffer(i) = '0' + d;
else
buffer(i) = 'A' + d - 10;
n = n>>4;
}
return &buffer;
}
Gruß,
Michael