Ho fatto una funzione come questa:Esiste uno strcmp sicuro?
bool IsSameString(char* p1, char* p2)
{
return 0 == strcmp(p1, p2);
}
Il problema è che a volte, per errore, gli argomenti vengono passati che non sono stringhe (che significa che p1
o p2
non termina con un carattere nullo). Quindi, strcmp
continua a eseguire il confronto finché non raggiunge la memoria non accessibile e si arresta in modo anomalo. Esiste una versione sicura di strcmp
? O posso dire se p1
(e p2
) è una stringa o non in modo sicuro?
potrei avere mistakingly rimarcato la tua domanda a C. Siete alla ricerca di una soluzione C o C++? –
Ricorda che anche lo strncmp non garantisce la sicurezza. –
@Pavel Shved, c'è un tipo di ritorno bool, e C non ha il tipo bool, quindi penso che sia C++ –