Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Zwei Wörter vergleichen

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 <
000
11.03.2004, 22:23 Uhr
t10ottoo



Hi,

hab da ein rießen Problem.
Also:
Der Benuter soll zwei Wörter eingeben, die soll das Programm dann miteinander vergleichen, welches länger ist und dann halt ne dementsprechende Ausgabe machen.
Hier ist schonmal mein Code, er zeigt keine Fehler an, aber sobald ich wort1 und wort2 eingegeben habe, macht er nix mehr


C++:
// Benutzte Routinen bekanntmachen:

#include <iostream.h> // cin, cout, >>, << und endl:


// Globale Konstanten vereinbaren:
const int OK=0;

// ###################   Hauptprogramm   ###################

int stringCompare(char wort1[], char wort2[]);

int main(void)
{ // main

// Variablendeklaration
char wort1[100];
char wort2[100];
int zahl;

// Fuegen Sie Ihr Programm hier ein

// Eingabe der beiden Wörter
cout << "Bitte geben Sie das erste Wort ein (max. 100 Zeichen): ";
cin  >> wort1;
cout << "Bitte geben Sie das zweite Wort ein (max. 100 Zeichen): ";
cin  >> wort2;

// Funktion "stringCompare" wird aufgerufen und es werden beide Wörter übergeben
zahl = stringCompare(wort1, wort2);

// Ergebnis wird ausgegeben
if (zahl == 1)
{ // if1
    cout << wort1 << " ist kleiner als " << wort2 << '.';
} // if1
if (zahl == 2)
{ // if1
    cout << wort1 << " ist groesser als " << wort2 << '.';
} // if1
else
{ // else
    cout << wort1 << " und " << wort2 << " sind gleich gross.";
} // else

// Programm mit OK beenden
    return OK;
} // main

//*************FUNKTION*************
int stringCompare(char wort1[], char wort2[])
{ // Funktion
int i = 0;
int j = 0;
int zahl;

while (wort1[i] != 0);
{ // while
    i++;
} // while

while (wort2[j] != 0);
{ // while
    j++;
} // while
cout << i << endl << j << endl;
if (i < j)
{ // if1
    zahl = 1;
} // if1
else if (i > j)
{ // if2
    zahl = 2;
} // if2
else
{ // else
    zahl = 0;
} // else

return zahl;

} // Funktion



Ich hoffe ihr blickt da durch und könnt mir helfen
Und bitte nicht allzu viel dran ändern
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
11.03.2004, 23:00 Uhr
Cebinem



Hi!!!
Also ich versteh deine Ergebnisauswertung nicht ganz. Wie prüfst du die zwei Wörter mit dem Vergleichsoperator == und warum benutzt du in der Funktion

C++:
int stringCompare(char wort1[], char wort2[])



Integer-Variablen, also

C++:
int i = 0;
int j = 0;
int zahl;



und nicht wie oben ein char, wenn du Wörter vergleichen willst.
Wenn ich dich richtig verstanden habe, gibst du beide Wörter ein und es erfolgt keine Ausgabe (Ergebnis) auf dem Bildschirm. Setz mal vor return OK; und vor return zahl; die Zeilen

C++:
cin.ignore(); // falsche Eingaben ignorieren
cin.get(); // Programm geöffnet halten



ich weiß aber nicht ob das nur bei ANSI-Standard funktioniert.
--
Jetzt sind wir hier, was jetzt geschieht, geschieht uns. - Anna Seghers
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
12.03.2004, 11:00 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


öhm also wenn du nur die länge eines strings wissen willst gibts dafür schon ne funktion


C++:
//return <0 wenn word1<word2
//return 0 wenn word1==word2
//return >0 wenn word1>word2
int mystrcmp(char* word1,char*word2){return strlen(word1)-strlen(word2);}


--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 12.03.2004 um 11:01 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
12.03.2004, 11:18 Uhr
RedEagle



der schluss der main() funktion sollte so aussehen:

C++:
#include <conio.h>

main()
{
//...

getch(); //Wartet buis taste gedrückt wird
return 0;
}


--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
12.03.2004, 11:57 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@RedEagle
ob man am ende noch ein getch braucht oder nicht hängt von deiner entwicklungsumgebung ab mit der du das testest. Einige halten das "Eingabefenster" von selber auf so das man am Ende nicht noch was einlesen muss um das fenster zu zwingen seine ausgabe länger zu zeigen.

übrigens ist conio.h os abhängig und gehört nicht zum ansi-standard. Wenn du nicht weisst was für ein os der fragende hat solltest du ihm möglichst nicht die getch() variante anbieten, da du ja nicht weisst ob sie bei ihm auch funktioniert. Besser ist z.b ein cin am ende zu verwenden wenn man das problem hat das sich das auszuführende fenster zu schnell schliesst...

Gruss Windalf
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
12.03.2004, 12:14 Uhr
RedEagle



@ Windalf
Da er es aber in den "C / C++ (Windows API, Konsole)" bereich reingeschrieben hat, denke ich, das es sich um Windows handelt
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
12.03.2004, 12:16 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@RedEagle
Tatsache da hab ich wohl mal wieder vorschnell geurteilt
nagut dann vergiss den zweiten absatz den ich geschrieben habe
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
12.03.2004, 15:38 Uhr
t10ottoo



OK, danke erstmal, werds dann mal probieren,
aber es muss eigentlich auch nur mit Zeichenketten gehen.

Gruß
Thomas
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


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: