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);
}

Last edited by shabbir; 11Mar2009 at 09:27.. Reason: Code blocks