私は、ソースコードの以下の非常に非常にシンプルな一枚にコンパイルしようとしています:G ++エラー:「stricmp」はこのスコープで宣言された(しかし、「strcmpの」のOK)されなかった
#include <cstring>
// #include <string.h>
// using namespace std;
class Helper {
public:
int cStringsAreEqual(const char *s1, const char *s2) {
return stricmp(s1, s2);
}
};
を...しかし、私次のエラーメッセージを取得しています:私は代わりにstricmp()ののstrcmp()を使用する場合
g++ error: ‘stricmp’ was not declared in this scope
しかしその後、すべてが素晴らしいです!
ここで間違いがありますか? stricmp()が許可されているときにstricmp()を許可してはいけませんか?
Sureley、これはstrcmp/stricmpを使わずにはるかに良い方法で書くことができます。
しかし、それはここでのポイントではありません。
私はstricmp()の呼び出しを多く使うソフトウェアを移植しています。どういうわけか可能なら、私はstricmpへのすべての呼び出しを変更するために必要なすべての努力を避けたいと思います。
これに関するお手伝いをさせていただきます。
ところで:私はg ++ v4.4.1でUbuntu karmic OS(v9.10)を使用しています。
私は、あなたも '#include string.h'または 'namespace std'を使って試してみましたが、何も助けてくれませんでした。
は(後者は大文字と小文字が区別されます)stricmpとのstrcmpが同じではないことを考えると、あなたはとにかくそれらを変更する前にhesistateする場合があります。 – Brian
彼らは同じではないと私は知っています。だから私はstricmpを使用したいが、strcmpは使用したくない。 –
「」と「」はまったく同じものではないことに注意してください。あなたの問題の原因ではありませんが、名前がグローバル名前空間にインポートされていると仮定するのではなく、 'std :: strcmp'(または' std :: strcoll')を書く必要があります。 –