Go4Expert

Go4Expert (http://www.go4expert.com/)
-   C (http://www.go4expert.com/forums/c/)
-   -   Why is there a letter 'i' after strcmp? (http://www.go4expert.com/forums/letter-i-strcmp-t16501/)

Player 11Mar2009 04:13

Why is there a letter 'i' after strcmp?
 
Hi all.

I cannot see why there is a letter 'i' after the strcmp function? The program runs fine without it and it doesn't explain in my book why it's there. It's the first time it's used and i have looked at other string functions and can't seem to be able to see a reason behind it. Here's my source code. I have made a comment where the problem lies.

Thanks in advance.
Code:

#include<string.h>
#include<stdio.h>

int main()
{
    char dwarf[7][2][8]={
        "bashful","?",
        "doc","?",
        "dopey","?",
        "grumpy","?",
        "happy","?",
        "sneezy","?",
        "sleepy"};
    char input[64];
    int named=0;
    int x;
   
    puts("See if you can name the seven dwarfs:");
   
    while(named<7)
    {
        if(named==1)
            printf("\nSo far you have named %d dwarf.\n",named);
        else
            printf("\nSo far you have named %d dwarfs.\n",named);
        printf("Enter a name:");
        gets(input);
       
    /*check for no input*/
        if(strcmp(input,"")==0)//no input, end
        break;
       
        for(x=0;x<7;x++)
        {
            if(strcmpi(input,dwarf[x][0])==0)/*WHY IS THERE A LETTER "I" AFTER STRCMP?*/
            {
                if(dwarf[x][1][0]=='!')
                    printf("You already named that dwarf!\n");
                else
                {
                    printf("Yes! %s is right.\n",input);
                    named++;
                    dwarf[x][1][0]='!';
                }
            }
        }
    }
    return(0);
}


shabbir 11Mar2009 09:31

Re: Why is there a letter 'i' after strcmp?
 
The comparison is not case-sensitive.

Player 11Mar2009 12:07

Re: Why is there a letter 'i' after strcmp?
 
Quote:

Originally Posted by shabbir (Post 44202)
The comparison is not case-sensitive.

The comparison is case sensitive. "strcmp" is case sensitive and "strcasecmp" isn't case sensitive (according to my book, could my book be wrong?). This still doesn't explain why the letter 'i' is inputted after strcmp. :crazy:

shabbir 11Mar2009 12:36

Re: Why is there a letter 'i' after strcmp?
 
strcmp is case sensitive but the one with the i is case insensitive.

Check http://msdn.microsoft.com/en-us/libr...42(VS.85).aspx

Player 11Mar2009 15:23

Re: Why is there a letter 'i' after strcmp?
 
Quote:

Originally Posted by shabbir (Post 44214)
strcmp is case sensitive but the one with the i is case insensitive.

Check http://msdn.microsoft.com/en-us/libr...42(VS.85).aspx

Thanks Shabbir. I was getting confused because i thought "strcasecmp" was the only function that wasn't case sensitive. I didn't realise that strcmpi was the same thing. Thanks for your help in this :)

shabbir 11Mar2009 17:02

Re: Why is there a letter 'i' after strcmp?
 
The pleasure is all mine


All times are GMT +5.5. The time now is 23:24.