Str to Int Funktion

OP #805876
Lesenswert?

Hi,
ich brauche für ein Programm diese Funktion. Ich habe jetzt diesen 
Algorithmus geschrieben:
1
    laenge=strlen(input);
2
    Exp=0;
3
    Nummer=0;
4
    for(i=laenge;i>0;i--) {
5
      Nummer=Nummer+(input[i-1]-48)*pow(10,Exp);
6
      Exp++;
7
    }

Er müsste eigentlich funktionieren...aber kann man das noch besser 
gestalten? Oder gibt es schon eine fertige Funktion dafür?
#805890
Lesenswert?

Nur der Vollständigkeit halber (atoi ist sicherlich die
bessere Variante)

So kann man sich ein einfaches aoti für positive Zahlen
selber schreiben. Der Unterschied zum richtigen atoi liegt
in der Nichtauswertung eines möglichen Vorzeichens und in der
Fehlerbehandlung, wenn ungültige Zeichen im String sind.
1
int myAtoi( const char* string )
2
{
3
  int result = 0;
4

5
  while( *string )
6
    result = 10 * result + ( *string++ - '0' );
7

8
  return result;
9
}

PS: Welche C-Bücher liest du eigentlich, wenn du aoti nicht
kennst?
#805894
Lesenswert?

Der Dude wrote:
> Naja, Karl-Heinz, nun sei mal nicht so streng. Jeder von uns musste das
> auch erst mal alles lernen.

Das ist schon richtig.
Trotzdem braucht man zum Erlernen einer Programmiersprache
entdprechende Unterlagen. Das ist speziell im Falle von C
besonders wichtig. C lebt davon, dass der eigentliche
Sprachstandard minimalistisch ist, und alles weitere in
Form von Funktionen zur Verfügung gestellt wird.
Gast #805901
Lesenswert?

Oder in Form von Funktionen selbst formuliert und so immer wieder 
verwendet werden kann.

Das ist der Witz an strukturierter Programmierung - dabei ist es 
wurscht, ob man mit Turbo-Pascal oder C angefangen hat. Das Prinzip ist 
immer das gleiche.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren