Ich weiß, das ist wahrscheinlich eine sehr Anfänger Frage, aber ich habe meinen Kopf dagegen für ein paar Stunden geschlagen. Irgendwelche Tipps würden uns freuen.Konvertieren von Char-Array zu Ints
Ich habe eine nullterminierte Zeichenfolge. Ich versuche C und strtol zu verwenden, um es in int zu konvertieren, was bis zum letzten Zeichen vor dem NULL funktioniert, das a/n ist. Ich bin mir nicht sicher, wie ich Strtol dazu bringen kann, vor diesem Charakter aufzuhören.
Conversion-Code:
char *end;
arr[0] = strtol(temps, &end, 10);
for(int i = 1; i < n - 1; i++){
arr[i] = strtol(end, &end, 10);
}
arr[n] = strtol(end, NULL, 10);
Eingang:
49 32 45 50 32 45 56 32 52 32 53 10 // ascii values
Erwartete Ausgabe:
1 -2 -8 4 5 // character array
Ausgang:
1 -2 -8 4 1 // int array
Vielen Dank für Ihre Hilfe.
Erklären Sie, was denken Sie, mit Ihrem Programm falsch ist. Fügen Sie eine falsche Beispielausgabe in das Programm ein. Erklären Sie, wie es erhalten wurde (Ihr Code-Fragment hat keine I/O-Funktionen.) ** NB **: Sind Sie sicher, dass Sie "end" als ersten Parameter für "strtol" übergeben wollen? – DyZ
Hallo, sorry, die int-Array-Ausgabe ist die falsche Ausgabe. Es sollte eine 5 ausgeben, aber es gibt eine 1 aus. Ich denke, vielleicht verstehe ich das Argument str_end nicht gut genug, um es zu verstehen, dass es bei \ n aufhören sollte. Ich glaube, das erste Ende ist richtig. Ich denke nur, dass der letzte NULL falsch ist. Für I/O, gibt es mir das Zeichen-Array temps [] durch die Ascii-Werte Ausgabe (ich habe nicht die NULL-Terminierung aber es ist da). Ich muss es in ein int-Array konvertieren, – MushinZero
Poste die Definition von 'arr []'. – chux