Next: Verwendung eines Vektors
Up: Container (forts.)
Previous: Verwendung einer Liste
/* GR Die Worte eines Satzes in umgekehrter Reihenfolge
ausgeben. 1998-11
*/
#include <iostream>
#include <list>
#include <string>
#include <fstream>
using namespace std;
#include <cstdlib> //für exit()
void error(char *s, char *s2="")
{
cerr << s << ' ' << s2 << '\n';
exit(1);
}
int main(int argc, char **argv)
{
const string trennzeichen(" \t\n");
typedef list<string> ListOfStrings;
ListOfStrings words;
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)){
if ('.' != s[s.length()])
s += '.';
string::size_type beg, end;
beg=s.find_first_not_of(trennzeichen);
while(beg != string::npos) {
end=s.find_first_of(trennzeichen,beg);
string wort = s.substr(beg,end-beg);
words.push_back(wort);
if (string::npos != wort.find('.')) {
while(!words.empty()) {
cout << words.back() << ' ';
words.pop_back();
}
}
beg=s.find_first_not_of(trennzeichen,end);
}
cout << '\n';
}
} else error("Argv: Zuwenig Argumente");
return 0;
}
© 1997 Gottfried Rudorfer, C++-AG, Lehrveranstaltungen, Abteilung für Angewandte Informatik, Wirtschaftsuniversität Wien, 12/1/1998 |