eingelesenen text formatieren
-
Hallo nochmal:)
Vielleicht könnte mir jemand helfen, und zwar:
Hab einen Text aus einer Datei eingelesen und in eine zweite datei kopiert.
Nun muss ich die Zeilenlänge auf 80 festlegen, auch kein problem.aber es dürfen keine Wörter zerteilt werden. Weiters soll ein Zeilenumbruch erfolgen, wenn das zeichen '{' kommt. Und da bin ich mit meinem c++-latein am ende.
insert() funktioniert nicht, replace auch nicht. vielleicht hat jemand eine idee:) wäre echt super
ich stell meinen code von der formatierung rein, der vom einlesen des textes kann ich ja weglassen...
// Beginn Formatierung. unsigned char c; unsigned int count = 0; char cc; const int ZEILENLAENGE = 80; string buchstaben; buchstaben.insert('{',"\n"); while (file.get(cc)) { c = cc; if(c < ' ') { c = '.'; } buchstaben += c; ++count; count %= ZEILENLAENGE; if (count == 0) { cout << buchstaben << " " << endl; buchstaben = ""; } } if (count != 0) { cout << buchstaben; for(size_t i=0; i < (ZEILENLAENGE-count); ++i) cout << ' '; cout << " " << endl; } cout << endl; system("PAUSE"); return 0; }danke für eure zeit
v
-
Hallo,
ich bin mir ziemlich sicher, dass insert so nicht funktioniert. insert bekommt normalerweise einen Iterator(Zeiger) auf die Stelle, wo du einfügen willst, sonst würde es replace heißen. Schau aber einfach in der C++-Referenz nach, dort sind die Methoden beschrieben und manchmal gibt es auch ein Beispiel. Im Internet wird man aber sicherlich auch sonst sehr viel Material zum Umgang mit STL-Strings finden.
Viel Erfolg!
-
Hallo,
Bei deinen Operationen musst du erstmal mit find o.ä. die Position zum Ersetzen herausfinden. Die kannst du dann replace übergeben.
Wenn du keine Wöreter trennen willst musst du halt nach Leerzeichen suchen und da trennen.
siehe
http://www.cplusplus.com/reference/string/string/