itoa Funktion
-
Hallo
der erste Parameter bei der itoa Funktion soll ein Integer sein. Mich würde interessieren ob der erste Parameter auch ein Char sein darf.
MfG
-
naja also eigentlich nicht, solltest ja ne warnung erhalten, wenn du es richtig castest spricht aber eigentlich nicht's dagegen
also so ungefähr
itoa((int)'c',...);
lg lolo
-
Das Problem ist, dass ich von einer anderen Funktion einen Char von 0-255 bekomme. Diesen Wert muss ich in einen Char-Array umwandeln. Wenn ich int verwende kommt der Falsche Wert raus.
Kann man aus einem 16bit int einen 8bit int machen.
-
Vielleicht benutzt dein Compiler signed char für char, das kann man einstellen.
Mach doch mal richtig Code, dann gucken wir mal, ne.
-
noobLolo schrieb:
itoa((int)'c',...);
Du weisst, dass 'c' bereits vom Typ int ist?
-
Würde es so funktionieren
char a; char hundert; char zehn; char eins; a=216; hundert= a:100; zwischenwert= a%100; zehn= zwischenwert:10; zwischenwert= zwischenwert%10; eins=zwischenwert;
-
unsigned char a; char hundert; char zehn; char eins; a=216; eins=a%10; zehn=(a/10)%10; hundert=(a/100)%10;
eher so
lg lolo
-
c_programmierer schrieb:
Würde es so funktionieren
Intern ist ein char eine ganze Zahl, die je nach Codierung grafisch interpretiert wird. Das doofe ist, dass char je nach Compilereinstellung auch negativ sei kann.
Du kannst dir den Wert einfach anzeigen lassen:char c = 211; printf ("%d\n", c );
Damit kannst du kontrollieren, ob das rauskommt, was du dir vorstellst.
-
evtl. kannst du auch gegen "CHAR_MAX" testen also bspw.
if(216 > CHAR_MAX) printf("number will overflow"); else printf("assignment will be ok");
lg lolo
-
Ich habe geschrieben
unsigned char a; char b[4]; a=wert_empfangen; itoa(a, b, 10);
Es zeigt mir den richtigen Wert an jedoch weiß ich nicht ob es mir andere Probleme machen wird da ein int verlangt wird.
-
Außer einer eventuellen Warnung gibt es keine Probleme. Ein char sowie ein unsigned char sind vom Wertebereich her beide im Wertebereich von int enthalten.