Gibts bei c einen parser für *char -} int oder muss ich den selber coden? Soll auch am Sysprog rechner laufen.
mfg Zentor
Gibts bei c einen parser für *char -} int oder muss ich den selber coden? Soll auch am Sysprog rechner laufen.
mfg Zentor
ich glaub du meinst atoi();
und einen einzelnen char kannst du ja einfach umrechnen.
ZitatOriginal geschrieben von MaxAuthority
ich glaub du meinst atoi();und einen einzelnen char kannst du ja einfach umrechnen.
*PLONK*
Und schon der erste Fehler. atoi() ist böse, ein programm, in dem atoi() vorkommt, wird in sysprog nicht angenommen.
http://www.vmars.tuwien.ac.at/courses/sysprog/Richtlinien.html
Statt dessen ist strtol() zu verwenden (siehe man 3 atoi für eine begründung).
Hm, ok, danke, ich glaub strtol is die gesuchte Funktion. txs
Seltsam, ich hab gedacht es geäbe eine verlässlichere Funktion, die eien beliebig langen *char in einen int umwandelt ohne zusätzliche Argumente. Wie kann man unterscheiden ob eine Konversion von "0" -} 0 erfolgt ist oder ein Fehler aufgetreten ist. Beides liefert doch 0 oder?
mfg Zentor
ZitatOriginal geschrieben von jjan
*PLONK*
Und schon der erste Fehler. atoi() ist böse, ein programm, in dem atoi() vorkommt, wird in sysprog nicht angenommen.
http://www.vmars.tuwien.ac.at/courses/sysprog/Richtlinien.html
Statt dessen ist strtol() zu verwenden (siehe man 3 atoi für eine begründung).
tausend dank. das hätte ich ganz übersehen und ich hätte was falsches abgegeben. Tausend dank!
Wegen "0" != Fehler:
char* endp;
char* str = "0";
int value = strtol (str, &endp, 10);
endp zeigt jetzt auf str + 1, ein zeichen umgewandelt. value=0.
char* endp;
char* str = "x";
int value = strtol (str, &endp, 10);
endp zeigt auf str + 0, value = 0.
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!