Remix

Come è possibile che sul mio pc il programma funzioni (l’output restituito è lo stesso di quello degli esempi) e quando lo carico non mi funziona neanche sui casi esempio?

Attenzione a quando controlli l’uguaglianza di due stringhe. Per esempio:


char a[] = “prova”;
char b[] = “prova”;
if (a == b) {
// …
}
qui l’if non viene verificato, perché le due stringhe risiedono in posizioni diverse nella memoria RAM (e quell’if sta confrontando due posizioni di memoria).

Il modo corretto per confrontare due char[] è:

char a[] = “prova”;
char b[] = “prova”;
if (strcmp(a, b) == 0) {
// …
}
che va a confrontare carattere per carattere.

Un altro modo: usare il tipo di dato std::string al posto degli array di char :slight_smile:

Io faccio un confronto diretto tra caratteri, ma la cosa strana è che l’output scritto sul file di testo sul mio pc viene giusto, mentre il correttore me lo da sbagliato