Zahl "stellenweise" abarbeiten
-
Hallo zusammen,
ist wahrscheinlich eine ganz einfache Frage, nur steh ich mit C einigermaßen auf Kriegsfuß, kann aber nicht drum rum (Teil des Studiums), hilft also nix..
Folgendes: Ich lese eine beliebige Integer-Zahl ein, die ich Stelle für Stelle abarbeiten will, also z.B. die 10320047, dann benötige ich der Reihe nach die 1, dann die 0, dann die 3, dann die 2 usw. um mit den einzelnen Ziffern zu rechnen. Wie stelle ich das am Einfachsten an?
Danke schon mal und schönen Gruß, mister-ac.
-
Anderst herum geht es so, kannst aber einfach davor schauen wie groß die Zahl ist oder das ganze in ein Array speichern:
int num = 12345; while(num > 0) { machWasMit(num % 10); num /= 10; }
-
Du kannst es auch in ein char* umwandeln. Wenn dir das besser nützt, je nach Anwendung halt.
#include <stdio.h> #include <string.h> /* ... */ int i, zahl = 12345; char buffer[20]; sprintf(buffer, "%d\0", zahl); for (i=0; i < strlen(buffer); i++){ buffer[i]; }
-
imhotep schrieb:
Du kannst es auch in ein char* umwandeln. Wenn dir das besser nützt, je nach Anwendung halt.
#include <stdio.h> #include <string.h> /* ... */ int i, zahl = 12345; char buffer[20]; sprintf(buffer, "%d\0", zahl); for (i=0; i < strlen(buffer); i++){ buffer[i]; }
Dann aber beim Rechnen bitte daran denken, dass der Dezimalwert der einzelnen Ziffern in buffer gleich Ziffer + '0' ist.
-
Danke an alle, das hilft mir schon mal weiter.
Gruß, mister-ac.