wie strings auseinander nehmen
-
hi
ich muß ja zugeben, ich komm mehr aus der php richtung.
leider hab ich mit c++ grad ein sau dummes problem, was vermutlich keines ist.
ich les zeilenweise aus einer datei ein.
da stehen nur daten drinnen. also...01.12.2001
12.03.2006
.
.
.ich hol mir des zeilenweise raus und tus in nen string rein.
also is im string s ="01.12.2001" drinnen...
wie kann ich jetzt am dümmsten des so machen, dass ich den dann zerpflücke und danach so zusammen setze?
aus
01.12.2001
mache
20011201gruß
peterli
-
per substr ist das recht einfach, vorausgesetz Tag und Monat sind 2 Stellig, Jahr 4 Stellig.
string s = "01.12.2003"; string iso(s.substr(6, 4) + s.substr(3, 2) + s.substr(0, 2)); cout << iso << endl;
-
hi
vielen dank!
dann hab ich gleich noch ne frage...
ich habs jetzt so
int main () { fstream outputFile; ifstream inputFile("test.txt"); outputFile.open("output.txt", ios::out); while(!inputFile.eof()) { string s; getline( inputFile, s, inputFile.widen('>') ); string txt(s.substr(6, 4) + s.substr(3, 2) + s.substr(0, 2)); outputFile << txt << endl; } outputFile.close(); system("pause"); return 0; }leider macht der mir aber nur die erste zeile.
was mach ich da falsch?
gruß
-
hi
ok, hab den fehler schon... des kommt davon, wenn man aus einem seiner anderen cods was rauskopiert.. *g*
lag an dem...
inputFile.widen('>')
danke nochmal!!
gruß
-
#include <algorithm> #include <string> #include <fstream> bool is_dot(char c) { return c == '.'; } int main() { std::ofstream out_stream("output.txt"); std::ifstream inp_stream("input.txt"); std::string line_tmp; while (std::getline(inp_stream, line_tmp)) { std::reverse(line_tmp.begin(), line_tmp.end()); std::remove_if(line_tmp.begin(), line_tmp.end(), is_dot); out_stream << line_tmp << std::endl; } }^^
-
Guck nochmal drüber, aus 01.12.2001 würde bei dir 10022101 und nicht 20011201 werden :p
-
ähm ja stimmt ... vergessen ^^