itoa ist kein standard. wenn sprintf aus platzgründen ausscheidet, muss man sich selbst eine konvertierung basteln.
short ist hier ein 16bit int, das muss man an den controller anpassen. das char-array a muss gross genug sein, dass der int mitsamt vorzeichen und terminierender 0 reinpasst.Code:#include <stdio.h> #include <conio.h> // nur für getch. kein ansi-standard. void toascii(int i, char *a) { short int k=10000,n,pos=0; if(i<0) // neg. vorzeichen { a[pos++]='-'; i*=-1; } else if (i==0) // wenn i=0 ist { a[pos++]='0'; a[pos]=0; return; } while(i/k==0) // fuehrende nullen abschneiden { k/=10; } while(k) // konvertieren { n=i/k; a[pos++]=n+'0'; i-=n*k; k/=10; } a[pos]=0; return; } int main(void) { char a[7]; toascii(-37656,a); printf("%s",a); getch(); return(0); }
der code ist nur so hingeklatscht und nicht auf sicherheit optimiert (das heisst er läuft, aber bei falscher wahl von a,i,k können probleme auftreten). ist nur zum besseren verständnis gedacht.
anstelle von printf muss die textausgabe-funktion fürs LCD hin. sonst könnte man ja gleich mit %d den integer ausgeben.
gruesse von der katz






Zitieren

Lesezeichen