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.


Anmelden zum Antworten