char array in int zahl umwandeln



  • Was genau willst du dadrin haben? Die einzelnen Zeichenwerte aus dem String oder was?

    Code-Hacker



  • also ich will jetzt aus dem array

    int zahl;
    char array[256];
    
    int i;
    
    for(i=0;i<256;i++)
       zahl=atoi(array[i])+zahl
    

    aber des soll halt die ganze zahl aus dem array sein z.B:

    array[0]=1;
    array[1]=5;
    
    int zahl=15;
    


  • Du willst also die Zahl in dem Array, als integer-zahl haben, wenn ich das richtig sehe, dann mach einfach folgendes:

    char array[256]="12345"; 
    int zahl=atoi(array);
    std::cout << zahl;
    

    So bekommst du jetzt 12345 als integer Zahl.
    Oder wie in deinem Beispiel:

    char array[256];
    
    array[0]='1';
    array[1]='5';
    
    int zahl=atoi(array);
    
    std::cout << zahl;
    

    Jetzt kommt 15 heraus. Außerdem solltest du dem Array das Zeichen 1 und nicht die 1 zuweisen, also in einfache Hochkommatas gestellt 😉

    Nebenbei funktioniert deine obige Schleife nicht, da meckert er:
    "blabla\CPPTests.cpp(20): error C2664: 'atoi': Konvertierung des Parameters 1 von 'char' in 'const char *' nicht möglich"

    Code-Hacker



  • und was fürn befehl is des in c weil mein compiler spinnt bei c++



  • Das ist eine C-String-Funktion. Du brauchst dafür die stdlib.h (in C++ cstdlib).

    Code-Hacker



  • ich hab was besser es gefunden trotzdem danke

    sscanf



  • Code-Hacker schrieb:

    char array[256];
    
    array[0]='1';
    array[1]='5';
     
    int zahl=atoi(array);
    
    std::cout << zahl;
    

    wer findet den fehler?



  • '\0' fehlt 🤡

    grüße Con@n



  • um ein char feld in einen int-wert umzuwandeln benutze ich, wie hier schon erwähnt,

    char array[256]="12345";  
    int zahl=atoi(array); 
    std::cout << zahl;
    

    funktioniert an sich auch einwandfrei...
    ich habe allerdings ein problem, da ich teilweise charfelder habe die mit einer 0 beginnen (durch generierung eines timestamp) und wenn ich das in int umwandle wird mir die 0 einfach "wegrationalisiert"...
    diese ist allerdings sehr wichtig!
    weiß jemand wie ich dieses problem lösen und meine 0 behalten kann??



  • die zahlen weiterhin als char* oder string speichern!



  • Con@n schrieb:

    '\0' fehlt 🤡

    OOOOOPS... 🙄
    Ich habe letztens im Buch einfach nur 0 gelesen statt \0, wo ist zw. den beiden der Unterschied:

    char array[2];
    array[0]='A';
    array[1]=0;
    

    und

    char array[2];
    array[0]='A';
    array[1]='\0';
    

    Beide haben die abschließende Null und funktionieren auch.

    Code-Hacker


Anmelden zum Antworten