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