Table of Contents

    strcmp() Function in C: Comparing Strings

    strcmp() Function in C: Comparing Strings

    strcmp() function in C compares two given strings and returns zero if they are same.

    Syntax

    int strcmp(const char *strng1, const char *strng2);

    The strcmp( ) function lexicographically compares two strings and returns an integer based on the outcome as shown here:

    Parameters

    strng1 -first string
    strng2 -Second string

    Returns

    Return Value Description
    Less than zero  strng1 is less than strng2
    Zero strng1 is equal to strng2
    Greater than zero strng1 is greater than strng2

    Program 1

    #include 
    #include 
    int main( )
    {
       char str1[ ] = "atnyla" ;
       char str2[ ] = "atNyla" ;
       int i, j, k, l;
       i = strcmp ( str1, "feel" ) ;
       j = strcmp ( str1, str2 ) ;
       k = strcmp ( str1, "f" ) ;
       l = strcmp ( str1, str1 ) ;
       printf ( "\n%d %d %d %d\n", i, j, k,l ) ;
       return 0;
    }

    Output

    -1 1 -1 0
    Press any key to continue . . .

    Program 2

    You can use the following function as a password-verification routine. It returns zero on failure and 1 on success. Here your predefined password is "pass"

    #include 
    #include 
    int main( )
    {
     int a;
     a = password();
     if(a==1)
     {
     printf("password matched\n");
     }
    }
    
    int password(void)
    {
    	char s[80];
    	printf("Enter password: ");
    	gets(s);
    	if(strcmp(s, "pass")) {
    	printf("Invalid Password\n");
    	
    	return 0;
    	}
    return 1;
    }

    Output

    Output 1
    Enter password: pass
    password matched
    Press any key to continue . . .
    
    Output 2 
    Enter password: passwo
    Invalid Password
    Press any key to continue . . .

    Point to be noted

    strcmp() function is case sensitive. i.e, "A" and "a" are treated as different characters.