/ / Confronto di due date come matrici di caratteri in C - c, stringa, confronto

Confronto di due date come array di caratteri in C - c, stringa, confronto

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 № 1

Per 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.