Veröffentlicht 1. April 200916 j #include "stdafx.h" #include <iostream> #include <string> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { string zeitstempel; string datum; string zeit; string tag; string monat; string jahr; string stunde; string minute; string sekunde; int position; string stag, smonat, sjahr; string sstunde, sminute, ssekunde; stag = datum.substr(0,2); smonat = datum.substr(3,2); sjahr = datum.substr(6,4); sstunde = datum.substr(); cout <<"Zeitstempel-Konvertierungsprogramm"<<endl; cout <<"Das Datum wird aus dem Format TT.MM.JJJJ in das Format Monat Tag, Jahr"<<endl; cout <<"konvertiert"<<endl<<endl; cout <<"Geben Sie Datum (TT.MM.JJJJ) und die Uhrzeit (std:min:sek) ein"<<endl; cin >> zeitstempel; system ("pause"); return 0; } Kurz zu dem Programm selber ein String soll in einzelteile Zerlegt werden und neu aufgelistet werden ich soll einen Zeitstempel umkonvertieren, heißt Deutsches Datum Deutsche Uhrzeit ins Englische Format Bsp.: 01.04.2009 16:38:36 > Apr 01, 2009 04:38:36 pm JEdoch steig das Programm jetzt schon aus dabei ist doch noch nicht so viel drin?? Ich hoffe, dass ich wieder auf eure Hilfe Zählen kann.
1. April 200916 j Der erste Parameter von std::string::substr darf nicht größer als die Länge des Strings sein. Wenn du versuchst, aus einem leeren String (datum) ab Position 3 oder 6 etwas rauszuholen, dann ist es nicht verwunderlich, dass dir das um die Ohren fliegt.
1. April 200916 j also muss ich hier string stag, smonat, sjahr; string sstunde, sminute, ssekunde; die gesamte länge des strings vorgben? quasi string stag, smonat, sjahr[18]; string sstunde, sminute, ssekunde[18]; versteh ich das richtig?
1. April 200916 j Nein. Außerdem gibst du so nicht die Länge vor, sondern deklarierst ein Array von Strings. Grundsätzlich solltest du in einen String erst einmal etwas hineinstecken, bevor du versuchst, etwas herauszuholen. Du versuchst, Substrings aus einem String zu holen, in dem nichts drinsteht.
1. April 200916 j Ist die Frage ernst gemeint?datum = "Inhalt"; oderdatum = string_in_dem_wirklich_was_drinsteht.substr( x, y ); Oder durch Einlesen von cin, so wie du es mit dem String zeitstempel machst. Was davon im Kontext deines Programms sinnvoll ist, musst du dir schon selbst überlegen. Du wirst dir beim Anlegen der Variablen ja etwas gedacht haben, oder?
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.