Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Erklärung von Code

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
02.11.2004, 13:45 Uhr
0xdeadbeef
Gott
(Operator)


bool gibts in C99? Das war mir bisher nicht bekannt...

Nein, ich hab nichts gegen C99 - auch wenn ich eher in C++ verankert bin. Es ist nur so, dass C89 einem beim Golfen größere Freiheiten lässt.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
02.11.2004, 14:37 Uhr
~Gast
Gast



Zitat von Windalf:
öhm ich hab mal wieder nicht richtig gelesen... du wolltest ja eine erklärung haben


C++:
int isNumber(char* zahl){
    char flag=0,*p=zahl;//zeiger p auf stringanfang zeigen lassen, flag merkt sich ob schon ein punkt registriert wurde....
    if(!*p) return 0; //wenn der string leer ist keine zahl
    if(*p=='-'||*p=='+')++p; //eventuelles + oder minus weglesen
    for(;*p;++p) //so lange p noch nicht auf den ende des strings zeigt lasse am p aufs nächste zeichen zeigen
        if(!isdigit(*p)) //wenn p nicht auf eine ziffer (0...9) zeigt...
            if(flag || *p!='.' )return 0; //wenn schon ein punkt gefunden wurde oder p nicht auf einen punkt zeigt ist es keine zahl
            else ++flag; //an sonsten muss es ein punkt sein also merken das schon einer gefunden wurd indem flag um eins erhöht wird
    return 1; //wenn die schleife komplett durchläuft wars ne zahl 1 zurückliefern
}





Ok habe das jetzt so einigermassen verstanden. Anstelle von return 1 könnte ich doch dann auch direkt die Zahl zurückgeben oder? In dieser Funktion ist die Zahl ja soweit ich weiß noch ein string, dann müßte ich mit atoi ? den string in eine Zahl umwandeln?

Habe es mal so versucht:

return atoi(zahl);

und dann in der main funktion:

if (isNumber(zahl))
{
printf("%d",zahl);
}

da bekomme ich dann aber nicht die eingegebene Zahl raus.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
02.11.2004, 16:46 Uhr
RedEagle




C++:
if(isNumber(zahl)) //Prüft, ob isNumber keine 0 zurück gibt
{
int echte_zahl = isNumber(zahl);  //Der return-wert wirt in eine integer-variable gespeichert
}



Was evtl Probleme machen könnte (wird) ist, wenn jemand die Zahl "0" eingibt. da müsste man dan noch irgendwie was machen.
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: