Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
606 views
in Technique[技术] by (71.8m points)

c++ - g++ error: ‘stricmp’ was not declared in this scope (but OK for 'strcmp')

I am trying to compile the following very very simple piece of source code:

#include <cstring>
// #include <string.h>
// using namespace std;

class Helper {
public:
    int cStringsAreEqual(const char *s1, const char *s2) {
        return stricmp(s1, s2);
    }
};

... but I am getting the following error message:

   g++ error: ‘stricmp’ was not declared in this scope

However when I use strcmp() instead of stricmp() then everything is fine!

What can be wrong here? Shouldn't stricmp() be allowed when strcmp() is allowed?

Sureley, this all could be written in a much better way without using strcmp/stricmp.

But that's not the point here.

I am porting a piece of software - which makes much use of calls to stricmp(). And if somehow possible I would like to avoid all of the efforts needed to change every call to stricmp.

Any help on this would be very much appreciated!

BTW: I am using Ubuntu karmic OS (v9.10) with g++ v4.4.1.

BTW: as you can see I also made some trials with '#include string.h' or with 'namespace std' but nothing helped.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Try strcasecmp(). Here's the manual page for it. It is conforming to 4.4BSD and POSIX.1-2001.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...