Char to Int



  • Hi, ich möchte aus einem Char einen Integer-Wert machen (Nicht das Äquivalent aus der ASCII-Tabelle).
    Das folgende funktioniert:

    char *a = "1234";
    char c = a[1];
    printf("%d", atoi(&c));
    

    Das hier wäre auch eine Möglichkeit:

    char *a = "1234";
    char c[100];
    sprintf(c, "%c", a[1]);
    printf("%d", atoi(c));
    

    Aber weshalb funktioniert das nicht bzw. wie kann ich es zum Laufen bringen?

    char *a = "1234";
    printf("%d", atoi(&a[1]));
    


  • Hm, ich weis jetzt nicht was das Problem ist? Der Code macht eigentlich genau das was er soll.
    Die Ausgabe lautet bei mir "234". Willst du die 1 auch noch mit haben?
    Dann musst du auch auf das erste Element zeigen mit deinem Pointer.

    char *a = "1234";
    printf("%d", atoi(&a[0]));
    

    //Edit
    Ah du willst nur die 2 haben, was?
    Nun das wirste wohl mit einem der ersten 2 ansätze machen müssen.
    Die Funktion heist ja nich um sonst atoi :xmas1:



  • gosha16 schrieb:

    Die Ausgabe lautet bei mir "234".

    wieso denn das?
    🙂


Anmelden zum Antworten