zergon321: На примере: у тебя есть два адреса 010.096.000.023 и 010.134.111.189.
В битовом виде выглядят так:
00001010.01000000.00000000.00011001
00001010.10000110.01101111.10111101
И начинаем накладывать на них битовые маски, начиная с /32(11111111.11111111.11111111.11111111) в сторону увеличения маски. Как видно минимальной маской при которой адреса совпадут будет являться маска 11111111.00000000.00000000.00000000 или 255.0.0.0 или /8.
Не менее 2-ух. Если предположить, что все номера квартир между вашими представлены, то не менее 19-ти. Если предположить, что нумерация непрерывна и первая квартира также присутствует в доме, то не менее 32-ух.
Ну если единственным действием является замена символа на верхний регистр, то проверка не нужна. Потому, что бесполезна.
if (str{3} >= 'a' && str{3} <= 'z' )