You can't simply say if ( a == b ) or if ( a < b ). You have
to use strcmp.
If a comes after b, then strcmp(a,b) returns a positive int.
If a comes before b, then strcmp(a,b) returns a negative int.
If a equals b, then strcmp(a,b) returns zero.
For case-insensitive comparisons, use a function like strcmpi.
There doesn't seem to be a standard for the name of strcmpi, which
seems to be strcasecmp under GCC.
#include <stdio.h>
#include <string.h>
int main( void ) {
const char *a = "Foo";
const char *b = "Bar";
const char *c = "foo";
printf( "strcmp( \"%s\", \"%s\" ) = %d\n", a, b, strcmp( a, b ) );
printf( "strcmp( \"%s\", \"%s\" ) = %d\n", a, c, strcmp( a, c ) );
printf( "strcasecmp( \"%s\", \"%s\" ) = %d\n", a, b, strcasecmp( a, b ) );
printf( "strcasecmp( \"%s\", \"%s\" ) = %d\n", a, c, strcasecmp( a, c ) );
return 0;
}
strcmp( "Foo", "Bar" ) = 4 strcmp( "Foo", "foo" ) = -32 strcasecmp( "Foo", "Bar" ) = 4 strcasecmp( "Foo", "foo" ) = 0TOC | Prev | Next