next up previous
Up: Strings Previous: Strings

Strings: Beispiel: Wordcount

/* GR Word-Cout mit einem Set und der Klasse String
   1998-11
*/
#include <iostream>
#include <map>
#include <string>
#include <fstream>
#include <cstdlib>
using namespace std;

void error(char *s, char *s2="")
{
  cerr << s << ' ' << s2 << '\n';
  exit(1);
}

int main(int argc, char **argv)
{
  const string trennzeichen(" \t\n");
  map<string,int> m;
  string s;
  ifstream in;
  
  if (argc == 2) {
    in.open(argv[1], ios::in);
    if (!in) error("Fehler beim Lesen der Datei", argv[1]);
    while(getline(in, s)){
      string::size_type beg, end;
      beg=s.find_first_not_of(trennzeichen);
      while(beg != string::npos) {
        end=s.find_first_of(trennzeichen,beg);
        m[s.substr(beg,end-beg)]++;
        beg=s.find_first_not_of(trennzeichen,end);
      }
    }
  } else error("Argv: Zuwenig Argumente");

  for( map<string,int>::iterator i=m.begin(); 
       i != m.end(); ++i ) 
  {
    cout << i->first << " : " << i->second << endl;
  }  
  return 0;
}


next up previous
Up: Strings Previous: Strings

© 1997 Gottfried Rudorfer, C++-AG, Lehrveranstaltungen, Abteilung für Angewandte Informatik, Wirtschaftsuniversität Wien, 12/1/1998