Zitat Zitat von Ineluki
beruecksichtigt isdigit(char) eigentlich auch "." und "E" und "e" und "-" ?

und selbst wenn, wuerde er nicht erkennen, dass "..." oder "1eee" keine Zahl ist.

selbst wenn man die exponentendarstellung (1000 = 1E3) ausschliesst, hat man immer noch das problem des Typeoverflow .... der string kann ja schliesslich nahezu unendlich lang sein, der 32-bit Int ist ja schliesslich begrenzt ....
In dem Fall würde ich sagen, daß man um die Konstruktion eines eigenen Parsers nicht herumkommt. Da C++ es nicht erlaubt, daß eine Integerfunktion etwas anderes als Ganzzahlen zurückgibt, kann man mit einer Funktion nicht arbeiten - vielleicht mit einer Prozedur.
Sprich: Du übergibst drei Referenzen (auf den zu überprüfenden String, auf einen Integer und auf einen Boolean); die Prozedur liest dann den String aus und schreibt die erkannte Zahl in den Integer; falls der String keine Zahl enhtält wird der Boolean auf TRUE gesetzt und der Integer leergelassen. Das dürfte die einfachste Methode sein, in C++ einen String in einen Integer umzuwandeln und dabei Nichtzahlen als solche zu kennzechnen.
Ist C++ nicht was Schönes?