Mit meinem Programm muss ich die enthaltene Zahl in eine Zeichenfolge zurückgeben Mein Programm scheint zu arbeiten, aber um sicher zu sein, muss ich die Nummer anzeigen. Die Sache ist, es sieht aus wie es in ascii stecken ist Zum Beispiel, wenn meine Nummer 12 ist, kann ich nur 1068 anzeigen Ich möchte Tipps in der Lage sein, mit der printf oder write-Funktionen die Zahl in der Zeichenfolge enthalten " abcd12 ". Wie dem auch sei , hier ist mein Programm (Wich normalerweise den Wert von nbr zeigt, Iteration pro Iteration und seinen Endwert in den Haupt):Zeichen String zu Integer
int my_getnbr(char const *str) {
int i = 0;
int nbr;
int power = 1;
while (str[i] != '\0') {
if (str[i] <= '9' && str[i] >= '0') {
nbr = nbr * power + str[i] + '0';
printf("%d\n", nbr);
power = power * 10;
}
i++;
}
return (nbr);
}
int main() {
int nbr;
nbr = my_getnbr("abcd12");
printf("nbr = %d\n", nbr);
return (0);
}
Dies zeigt undefiniertes Verhalten, da 'nbr' nie initialisiert wird. – hnefatl
'int nbr = 0; ... nbr = nbr * 10 + (str [i] - '0'); 'Subtrahieren '' 0'' (keine Notwendigkeit für 'power') – chux
Sie setzen' +' 0'' anstelle von '- '0 "". Wählen, um als Tippfehler zu schließen. – dasblinkenlight