001
29.12.2005, 13:58 Uhr
kermit
|
hi,
ich lerne auch grade etwas c++ und hab mir die aufgabe mal vorgenommen. geht sicher noch etwas besser und schoener aber ich wollte es erst mal "zu fuss" programmieren:
C++: |
#include <iostream> #include <fstream>
using namespace std;
//globale vars: char worte[41] [99]; //array fuer 99 worte a 40 char int wortanz=0;
//******************************************* void aWort(string &wort) { //******************************************* // wort per referenz uebergeben, // damit es anschliessend geloescht werden kann
if (wort=="") return; //nix da - nix tun // test cout<<" wort: "<<wort<<endl; // (worte[0] bleibt leer, der einfachheit halber ) ++wortanz; // gefundenes wort in array "kopieren" //c_str macht ansi (null pointer ) string // damit die zuweisung klappt strcpy(worte [wortanz],wort.c_str()); wort=""; return; }
//******************************************* void suchWorte(string str) { //******************************************* // wenn kein leerzeichen, //in wort zeichenweise kopieren
string wort=""; // tempvar
for (int i=0;i<=str.length();i++) { if (str[i]!=' ') wort=wort+str[i]; else aWort(wort); // gefundenes wort ausgeben u. loeschen } aWort(wort); }
//******************************************* int main() { //*******************************************
char kdat[]="dat.txt"; string str; srand(time(NULL));//s(tarte) random / zufallsgenerator
ifstream fi(kdat); if (!fi.good()) { // fehler cout<<"datei "<<kdat<<" nicht da"; system("pause"); return(1); } // zeilenweise einlesen while (!fi.eof()){ getline(fi,str); // cout<<"gelesen: "<<str<<endl; suchWorte(str); }
cout<<"gefundene worte: "<<wortanz<<endl<<endl; for (int i=1;i<=wortanz;i++) cout<<i<<". "<<worte[i]<<" "<<endl;
cout<<endl; // % modulo = rest von zufallsint / wortanz int zufall=rand()%wortanz+1; cout<<"ausgewaehlt Nr.: "<<zufall<<". "<<worte[zufall];
cout<<endl<<endl; system("pause"); return 0; }
|
Dieser Post wurde am 01.01.2006 um 10:37 Uhr von Uwe editiert. |