Konvertieren einzelner char zu int
Wie kann ich umwandeln char a[0] in int b[0] b ist eine leere, die dynamisch allokierten int-Arrays
Habe ich versucht
char a[] = "4x^0";
int *b;
b = new int[10];
char temp = a[0];
int temp2 = temp - 0;
b[0] = temp2;
Möchte ich 4, aber es gibt mir den ascii-Wert 52
Tun auch
a[0] = atoi(temp);
gibt mir
Fehler: ungültige Konvertierung von 'char' in 'const char*'
initializing argument 1 of 'int atoi(const char*)'
- Beachten Sie, dass atoi funktioniert nicht, weil atoi nimmt einen string und nicht einen einzigen char -- für die sehr guten Grund, dass die meisten zahlen haben mehr als eine Zahl!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie tun:
statt.
Die atoi () - version nicht funktioniert, weil atoi() arbeitet auf strings, nicht für einzelne Zeichen. So würde das funktionieren:
Beachten Sie, dass Sie könnten versucht sein, zu tun:
atoi(&temp)
dies würde aber nicht funktionieren, da &temp nicht auf eine null-terminierte Zeichenfolge.
Können Sie ersetzen die gesamte Sequenz:
mit dem einfacheren:
Überhaupt keine Notwendigkeit zu Chaos mit temporären Variablen. Der Grund, warum Sie brauchen, um zu verwenden
'0'
statt0
ist, weil die erstere ist die Charakter '0', die einen Wert von 48, statt die Wert 0.