Gast
#605839
Hallo, ich habe zwei Strings, die ich in ein Format umwandeln möchte. 1. String: Datum: 160707 --> 16/07/07 2. String: Zeit : 102001 --> 10:20:01 Wie kann ich dies in C++ realisieren?
|
Anzeige
|
Hilfe - String umwandeln
Gast
#605839
Hallo, ich habe zwei Strings, die ich in ein Format umwandeln möchte. 1. String: Datum: 160707 --> 16/07/07 2. String: Zeit : 102001 --> 10:20:01 Wie kann ich dies in C++ realisieren?
Gast
#605841
Erster String: 160707 soll umgewndelt werden in 16/07/07 Zweiter String: 102001 soll umgewndelt werden in 10:20:01 Peter wrote: > Hallo, ich habe zwei Strings, die ich in ein Format umwandeln möchte. > > 1. String: Datum: 160707 --> 16/07/07 > 2. String: Zeit : 102001 --> 10:20:01 > > Wie kann ich dies in C++ realisieren? Indem du mit den Stringfunktionen die einzelnen Teile herauslöst und neu arrangierst. std::string hat eine Memberfunktion substr Alternativ könnte man auch auf die einzelnen Character im String direkt zugreifen. Aber nur wenn garantiert ist, dass der Aufbau des Strings immer gleich ist std::string first = "160707"; std::cout << first[0] << first[1] << "/" << first[2] << first[3] << "/" << first[4] << first[5]; Wo ist das Problem? Zwei Zeichen aus dem Quellstring extrahieren, Füllzeichen einfügen, weitere zwei Zeichen extrahieren, Füllzeichen einfügen, restliche Zeichen aus Quellstring extrahieren. Ganz plump: char* quelle char ziel[10]; ziel[0] = quelle[0]; ziel[1] = quelle[1]; ziel[2] = ':'; ziel[3] = quelle[2]; ziel[4] = quelle[3]; ziel[5] = ':'; ziel[6] = quelle[4]; ziel[8] = quelle[5]; ziel[9] = '\0'; Lässt sich sicherlich hübscher erledigen.
Gast
#606138
und wo bleibt ziel[7]? Das bleibt dem geneigten Leser überlassen. Bei etwas über 30° Raumtemperatur darf ich Ziel[7] übersehen.
Gast
#609463
Wie könnte ich dann das Datum und die Uhrzeit in Integer umwandeln?
1. Datum: 16/07/07 --> year=07,mon=07,day=16
2. Zeit : 10:20:01 --> hour=10,min=20,sec=01
Ich hab es mal so gelöst:
char buf[20];
char temp[3];
int hour;
strcpy(time, buf);
temp[0] = buf[0];
temp[1] = buf[1];
temp[2] ) '\0';
hour = atoi(temp);
WIe könnte man dies eleganter lösen?
Peter wrote: > Wie könnte ich dann das Datum und die Uhrzeit in Integer umwandeln? > > 1. Datum: 16/07/07 --> year=07,mon=07,day=16 > 2. Zeit : 10:20:01 --> hour=10,min=20,sec=01 > > Ich hab es mal so gelöst: > > char buf[20]; > char temp[3]; > int hour; > > strcpy(time, buf); > temp[0] = buf[0]; > temp[1] = buf[1]; > temp[2] ) '\0'; > hour = atoi(temp); > > WIe könnte man dies eleganter lösen? Indem du dich daran erinnerst, dass die Zahl 52 (ist nur ein Beispiel, geht auch mit allen anderen Zahlen) nichts anderes ist als 5 * 10 + 2 10:20:01 hour = ( buf[0] - '0' ) * 10 + ( buf[1] - '0' ); Noch eleganter wird das mit ein paar kleinen Hilfsfunktionen
Gast
#609528
Danke Karl! Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|