Orso con i miei ragazzi questa è la mia seconda domanda di StackOverflow, per favore indicami la giusta direzione se sto sbagliando
Ho due date come caratteri.
Stampo le date:
printf("%s - %sn",tmpPtr->date, currentDate);
E ho una dichiarazione if che è sempre eseguito
if(tmpPtr->date != currentDate) { // perhaps strcmp(), don"t know
printf("Dates are not equaln");
}
Ma questo non può essere vero perché questi sono i miei risultati:
27/12/2015 - 27/12/2015
Dates are not equal
27/12/2015 - 27/12/2015
Dates are not equal
28/12/2015 - 27/12/2015
Dates are not equal
29/12/2015 - 28/12/2015
Dates are not equal
29/12/2015 - 29/12/2015
Dates are not equal
29/12/2015 - 29/12/2015
Dates are not equal
30/12/2015 - 29/12/2015
Dates are not equal
31/12/2015 - 30/12/2015
Dates are not equal
31/12/2015 - 31/12/2015
Dates are not equal
Questo non può essere vero perché alcune date sono uguali?
Sto confrontando correttamente le stringhe? Sta solo confrontando l'allocazione di memoria o qualcosa del genere?
risposte:
4 per risposta № 1Per confrontare le stringhe, utilizzare strcmp()
come questo :
if (strcmp(tmpPtr->date,currentDate) != 0) {
printf("Dates are not equaln");
}
0 per risposta № 2
Se le date sono nello stesso formato che sembra essere il caso, quindi utilizzare strcmp
. Altrimenti analizzali e confronta anno, mese e data di una stringa con i campi corrispondenti dell'altra.