468,456 Members | 1,642 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 468,456 developers. It's quick & easy.

ifdef

Hi
I get the error:
No case-independent string comparison (stricmp, strcasecmp)
with the code below. Why...where should stricmp
be defined? And how do i get rid of the error on Linux?

//
// Function portability
//
#ifndef HAVE_STRICMP
#ifdef HAVE_STRCASECMP
#define stricmp strcasecmp
#else
#error No case-independent string comparison (stricmp, strcasecmp)
available.
#endif
#endif // HAVE_STRICMP
another problem here:
#define DEBUG 1
main()
{
char inbuf[BUFSIZ];
int i = 0;
int lcnt = 0;
gets(inbuf);
while(*(inbuf+i))
{
#ifdef DEBUG
printf("Character %d Value %c(%o)\n",
i,*(inbuf+i),*(inbuf+i));
#endif
if(isalpha(*(inbuf+i)))lcnt++;
#ifdef DEBUG
printf("Letter Count %d\n",lcnt);
#endif
i++;
}
printf("Total letters %d\n",lcnt);
}
why is ifdef DEBUG 2x there?
Thanks
Michael
Jul 4 '06 #1
1 2856
Michael Sgier wrote:
Hi
I get the error:
No case-independent string comparison (stricmp, strcasecmp)
with the code below. Why...where should stricmp
be defined? And how do i get rid of the error on Linux?

//
// Function portability
//
#ifndef HAVE_STRICMP
#ifdef HAVE_STRCASECMP
#define stricmp strcasecmp
#else
#error No case-independent string comparison (stricmp, strcasecmp)
available.
#endif
#endif // HAVE_STRICMP
another problem here:
#define DEBUG 1
main()
{
char inbuf[BUFSIZ];
int i = 0;
int lcnt = 0;
gets(inbuf);
while(*(inbuf+i))
{
#ifdef DEBUG
printf("Character %d Value %c(%o)\n",
i,*(inbuf+i),*(inbuf+i));
#endif
if(isalpha(*(inbuf+i)))lcnt++;
#ifdef DEBUG
printf("Letter Count %d\n",lcnt);
#endif
i++;
}
printf("Total letters %d\n",lcnt);
}
why is ifdef DEBUG 2x there?
Thanks
Michael
This is not a C++ question.
You'll get more detailed answers in the GCC newsgroup:

gnu.gcc.help

On my linux system with gcc v3.3.5 strcasecmp()
is declared in strings.h, but HAVE_STRCASECMP is NOT
defined. This looks like part of an automake/config
system where automake sets the defines (eg HAVE_STRCASECMP)
based on its inspection of your system. If you do
have strcasecmp() in /usr/include/strings.h you can
define HAVE_STRCASECMP yourself.

Regards,
Larry
Jul 5 '06 #2

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

5 posts views Thread by lovecreatesbeauty | last post: by
5 posts views Thread by Hash | last post: by
6 posts views Thread by Michael B Allen | last post: by
8 posts views Thread by kk_oop | last post: by
5 posts views Thread by anushhprabu | last post: by
6 posts views Thread by anirbid.banerjee | last post: by
10 posts views Thread by David W | last post: by
3 posts views Thread by Andrew Gabriel | last post: by
reply views Thread by NPC403 | last post: by
1 post views Thread by subhajit12345 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.