Ich erstelle eine Zeitklasse (String-Basis) für mein Schulprojekt! Ich bekomme ein Zeiger-Zeichen für die Zeit! Ich habe eine Funktion, um die Zeit zu normalisieren, wenn es seltsam ist.
in normalize-Funktion Ich habe ein Zeichen-Array, um die richtige Zeit zu speichern, aber wenn ich das Zeichen-Array dem Zeiger-Zeichen zuweisen möchte, wird es falsch gehen!Weisen Sie den Wert eines Zeichenarrays im Zeigerzeichen zu C++
char st[10] = "", sh[3] = "", sm[3] = "", ss[3] = "";
itoa(hour, sh, 10);
itoa(minute, sm, 10);
itoa(second, ss, 10);
if(hour<10){strcat(st, "0");}
strcat(st, sh);strcat(st, ":");
if(minute<10){strcat(st, "0");}
strcat(st, sm);strcat(st, ":");
if(second<10){strcat(st, "0");}
strcat(st, ss);strcat(st, "");
stime = st;
stime
ist Zeiger-Zeichen, die die Zeit in der Klasse speichern.
wenn ich Wert von stime
verwenden möchte, bekomme ich sehr seltsame Ergebnisse. stimme den Wert der letzten Klasse stime
. Zum Beispiel habe ich diesen Code:
time a("1:50:0"), b("4:5:10");
a.print();
b.print();
aber ich bekomme 04:05:10
für zwei Klassen, und ich weiß nicht, warum!
Wenn Sie den Rest des Codes muss ich es hier hochladen: Google Drive link to file
Verwenden Sie 'std :: string' bitte beim Programmieren in C++. Das lässt meine Augen bluten. –
Ich müsste die Klassendeklaration sehen, um sicher zu sein, aber ich würde annehmen, dass die Art, wie Sie stime zuweisen, dazu führt, dass alle auf den gleichen Speicherort zeigen und nur die zuletzt zugewiesenen Stime. – Russ
@Russ Ich habe Dateilink in Post hinzugefügt! – amirsa00