You're probably over-complicating it too... this semi-pseudo code is a more direct route to the issue
Code:const int len = sizeof codes /sizeof *codes; int main( void ) { int i = 0; do { printf( "Enter country or code: " ); scanf( "%s", code ); if ( isdigit( code[0] ) ) { int num = atoi( code ); for ( CODES RANGE ) if ( CODES EQUAL ) printf( "Match at %d.\n", i ); } else { for ( CODES RANGE ) if ( STRINGS EQUAL) printf( "Match at %d.\n", i ); } } while ( CONDITION ); }