С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/40: Рейтинг темы: голосов - 40, средняя оценка - 4.55
1 / 1 / 0
Регистрация: 28.10.2015
Сообщений: 24
1

Определение ip через строки

20.11.2015, 19:14. Показов 7370. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В сети интернет каждому компьютеру присваивается четырехбайтовый код, который принято записывать в виде четырех чисел, каждое из которых может принимать значения от 0 до 255, разделенных точками. Вот примеры правильных IP-адресов:
127.0.0.0
192.168.0.1
255.0.255.255
Напишите программу, которая определяет, является ли заданная строка правильным IP-адресом.

Входные данные

Программа получает на вход строку из произвольных символов.
Выходные данные

Если эта строка является корректной записью IP-адреса, выведите YES, иначе выведите NO.
Примечание

Для перевода из строки в число удобно пользоваться функцией stoi, которая принимает на вход строку, а возвращает число.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.11.2015, 19:14
Ответы с готовыми решениями:

Определение длины той части строки s, которая не содержит символы из строки s1
Функция - StrCSpn(s,s1). Определение длины той части строки s, которая не со-держит символы из...

Ввести строки и через n символов первой строки вставить вторую строку, и так до конца строки
Помогите исправить баг задача состоит в следующем :ввести строку и простроку тоесть две строки и...

Доказать через определение
Помогите разобраться. Задача такая: Нужно доказать \lim_{x \to 2} x^2=4 пользуясь только...

Определение свойств через for
Скажите пожалуйста, можно ли определять свойства через цикл for? for (var i = 1; i < 11; i++) {...

11
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
21.11.2015, 15:33 2
Примерно так. Проверку диапазона добавь для остальных чисел.
C++
1
2
3
4
5
    char ip[] = "192.168.1.1";
    unsigned a, b, c, d;
    
    if (sscanf(ip, "%d.%d.%d.%d", &a, &b, &c, &d) == 4 && a < 256) printf("YES\n");
    else printf("NO\n");
1
Любитель чаепитий
3744 / 1800 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
21.11.2015, 16:01 3
nmcf, Что возвращает sscanf?
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
21.11.2015, 17:59 4
Цитата Сообщение от makfak Посмотреть сообщение
Что возвращает sscanf?

On success, the function returns the number of items of the argument list successfully filled.
1
Любитель чаепитий
3744 / 1800 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
21.11.2015, 21:01 5
Tulosba, Спасибо, меня просто в гугле забанили.
0
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
21.11.2015, 21:05 6
Цитата Сообщение от makfak Посмотреть сообщение
Что возвращает sscanf
Сколько параметров удачно извлечено.
1
9 / 9 / 2
Регистрация: 03.04.2016
Сообщений: 89
06.04.2016, 16:46 7
nmcf, а с функцией stoi, могешь?

Добавлено через 32 минуты
Код ошибочный, решение неправильное.
0
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
06.04.2016, 21:56 8
В чём он ошибочный? Пример.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <cstdio>
using namespace std;
 
int main()
{
    char ip[] = "192.168.1.1";
    unsigned a, b, c, d;
    
    if (sscanf(ip, "%u.%u.%u.%u", &a, &b, &c, &d) == 4 && a < 256) printf("YES\n");
    else printf("NO\n");
    
    return 0;
}
0
Любитель чаепитий
3744 / 1800 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
06.04.2016, 22:07 9
nmcf, Вот так, видимо, неправильно.
C++
1
char ip[] = "192.256.1.1";
Выдает "YES", хотя 256 не должно проходить. Нужно проверки на все цифры добавить.
0
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
06.04.2016, 22:10 10
Ну я же написал там, что нужно добавить в условие проверки всех четырёх чисел, не только a.
0
GbaLog-
06.04.2016, 22:13
  #11

Не по теме:

nmcf, Ну я-то видел, а AGPro, видимо, нет.

0
21 / 21 / 20
Регистрация: 07.02.2016
Сообщений: 87
16.06.2016, 16:04 12
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <string>
#include <cstdio>
 
using namespace std;
 
int main() {
    // put your code here
    string s = "";
    string s_gen = "";
    char s_char[200];
    int a, b, c, d, e;
    cin >> s;
    int res = sscanf(s.c_str(), "%d.%d.%d.%d", &a, &b, &c, &d);
    if (res == 4){
        if ((a >= 0) && (a <= 255) && (b >= 0) && (b <= 255) && (c >= 0) && (c <= 255) && (d >= 0) && (d <= 255)){
            sprintf(s_char, "%d.%d.%d.%d", a, b, c, d);
            s_gen = s_char;
            if (s_gen == s)
                cout << "YES";
            else
                cout << "NO";
        }
        else
            cout << "NO";
    }
    else{
        cout << "NO";
    }
    return 0;
}
1
16.06.2016, 16:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.06.2016, 16:04
Помогаю со студенческими работами здесь

Определение типа через typedef
То-ли я пересидел, то-ли я просто этого не знаю, но все же. Через typedef определить 1) массив...

Определение Range через Cells
Такая проблема появилась. Пытаюсь определить диапазон Set tmpO =...

Определение select через ajax
На странице товара интернет-магазина выводится нормальная цена товара, цена со скидкой, а также...

Определение браузера через PHP
здрасьте! есть код &lt;?php if ( stristr($_SERVER, 'Firefox') ) echo &quot;&lt;style type='text/css'&gt;...

Доказать через определение предела
\lim_{x \to 1} \frac{x^2-1}{2x^2-x-1}=2/3

Определение строки
Всем привет, подскажите если кто знает ка при помощи оператора mod в VBA сделать так чтобы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru