003
30.08.2004, 22:18 Uhr
Lensflare
|
ich würde dafür die folgende funktion schreiben:
C++: |
int zahl_aus_string(char s[]) { int a = 0; //Position im String int r = 0; while((s[a]>=48 && s[a]<=57) || r==0) { a += 1; //nächstes Zeichen if(s[a]>=48 && s[a]<=57) r = 1; //r nimmt Wert 1 an, wenn das Zeichen eine Ziffer ist. } a -= 1;
int e = 0; int m = 1; while(s[a]>=48 && s[a]<=57) { e += (s[a]-48) * m; m *= 10; //Multiplikator für nächste Stelle a -= 1; //ein Zeichen zurück (=eine Stelle vor) } return e; }
|
Es wird eine zeichenkette übergeben und eine zahl vom typ int zurückgegeben.
Dabei merkt sich die funktion, wo die erste zahl (nicht ziffer) im string aufhört und verarbeitet rückwärts alle ziffern bis ein zeichen kommt, das keine ziffer ist. -- Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten. (Emerson Pugh Trost) Dieser Post wurde am 30.08.2004 um 22:21 Uhr von Lensflare editiert. |