Typumwanldung!
-
so,
-hab ne array von char: char buffer[2]
-in diesem array exestieren 2 werte: buffer[0]='5' buffer[1]='4'
-jetzt möchte ich diese werte in INT umwandeln, die summe berechnen und
in als char wieder in 'buffer' abspeichern.
-dh in buffer sollte dann '9' (als char) stehen!wie kriege ich das hin? ich sitze schon solange dadran..
danke!
-
Hallo,
Schau dir mal die Funktionen sprintf(), atoi() und strtol() an.Ein Blick in die C++-FAQ (einmal Zahl nach String und zurück kann auch nicht schaden... weiß atm nicht, ob es etwas derartiges in der C-FAQ auch gibt).
Gruß Caipi
-
mit c++ habe ich keine probleme..da würde ich es schnell hinbekommen aber
bekomm es in c nicht hin..habe es mit atoi und fprints versucht, leider ohne erfolg!
-
brainwave81 schrieb:
mit c++ habe ich keine probleme..da würde ich es schnell hinbekommen aber
bekomm es in c nicht hin..habe es mit atoi und fprints versucht, leider ohne erfolg!Zeig doch mal den Code, bei dem du gescheitert bist :). (Glaub mir, der Lerneffekt wenn du anhand deines Codes den Fehler aufgezeigt bekommst, ist ungleich größer als wenn du eine auf Anhieb funktionierende Lösung hingeklatscht bekommst).
Gruß Caipi
-
Wenn du nur die Werte von Variablen mit dem Typ char in int umwandeln möchtest, dann kannst du das ganz einfach tun. Jedes Zeichen hat doch auch einen ASCII-Wert, der ja ganz leicht ein int sein kann (ich hoffe, dass ich das korrekt asugedrückt habe)
char c,d; char result; c = '4'; d = '5'; result = (c-'0')+(d-'0')+'0';
'4' hat den ASCII-Wert 52 und '0' 48. '4'-'0' ist also 52-48 und das ist 4. So kannst du char Werte umwandeln um mit ihnen zu rechnen.
'4'-'0' = 52 - 48 = 4;
'5'-'0' = 53 - 48 = 5;
5 + 4 + '0' = 9 + 48 = 57
57 ist der ASCII-Wert für '9'. Der Code ist nicht getestet.
-
// atoi und zurück mit sprintf #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> int main() { char buffer1[]="230"; char buffer2[]="450"; char final[32]; //hab hier Ergebniss gesichert int variable; memset(final,0,32); variable= atoi(buffer1); variable+=atoi(buffer2); sprintf(final,"%d",variable); printf("%d - als Zahl\n",variable); printf("%s - als String\n",final); getchar(); return(0); }
-
#include <stdio.h> #include <string.h> int main(void) { char buf[] = "450"; unsigned int i; int sum=0; for ( i = 0; i < strlen(buf); i++ ) sum += buf[i] - '0' ; sprintf(buf,"%d", sum); printf("%s\n", buf); return 0; }
-
Warum Stringfunktionen verwenden, wenn der OP gar keinen String hat?
-
Der OP kann das als Empfehlung verstehen und an sein char-Array eine 0 anhängen.
Dann lassen sich bequem die string Funktionen verwenden.