Sto cercando di compilare il seguente molto molto semplice pezzo di codice sorgente:g ++ di errore: 'stricmp' non è stato dichiarato in questo ambito (ma OK per 'strcmp')
#include <cstring>
// #include <string.h>
// using namespace std;
class Helper {
public:
int cStringsAreEqual(const char *s1, const char *s2) {
return stricmp(s1, s2);
}
};
... ma io ricevo il seguente messaggio di errore:
g++ error: ‘stricmp’ was not declared in this scope
Tuttavia quando uso strcmp() al posto districmp() allora tutto va bene!
Cosa può esserci di sbagliato qui? Non dovrebbe essere permesso stricmp() quando strcmp() è permesso?
Sureley, tutto questo potrebbe essere scritto in un modo molto migliore senza utilizzare strcmp/stricmp.
Ma non è questo il punto.
Sto eseguendo il porting di un pezzo di software, che utilizza molto le chiamate a stricmp(). E se in qualche modo possibile vorrei evitare tutti gli sforzi necessari per cambiare ogni chiamata a stricmp.
Qualsiasi aiuto su questo sarebbe molto apprezzato!
BTW: Sto usando Ubuntu karmic OS (v9.10) con g ++ v4.4.1.
BTW: come potete vedere ho anche fatto alcune prove con "#include string.h" o con "namespace std" ma nulla è servito.
Considerando che stricmp e strcmp non sono gli stessi (quest'ultimo è case sensitive), si potrebbe desiderare di hesistate prima di cambiare loro comunque. – Brian
I * so * che non sono uguali. Ecco perché voglio usare stricmp e non strcmp –
Nota anche che '' e '' non sono esattamente gli uni. Non è la causa del tuo problema, ma dovrai scrivere 'std :: strcmp' (o' std :: strcoll') piuttosto che assumere che i nomi siano importati nello spazio dei nomi globale. –