4 / 4 / 0
Регистрация: 24.10.2010
Сообщений: 200
1

Является ли данная строка действительным IP-адресом

29.10.2010, 19:51. Показов 7091. Ответов 12
Метки нет (Все метки)

Для того, чтобы получить доступ в Интернет, каждый компьютер назначен так называемый IP-адрес. Она состоит из четырех чисел диапазона [0, 255], разделенных точками.
В следующих трех строках показаны три правильный IP-адрес:
127.0.0.0
192.168.0.01
255.00.255.255

Напишите программу, которая определяет, является ли данная строка является действительным IP-адресом.

Input:
127.0.0.1
Input:
256.0.0.1
Output:
1
Output:
0

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
32
33
34
35
#include <iostream>
using namespace std;
int main () {
    int a[100];
    int b[100];
    int c[100];
    int d[100];
    char e[100];
    cin>>a[0]>>e[0]>>b[0]>>e[1]>>c[0]>>e[2]>>d[0];
    if (a[0]<=255 && a[0]>=0)
        cout<<"1"<<" ";
    else cout<<"0"<<" ";
    return 0;
 
    if (b[0]<=255 && b[0]>=0)
        cout<<"1"<<" ";
    else cout<<"0"<<" ";
    return 0;
 
    if (c[0]<=255 && c[0]>=0)
        cout<<"1"<<" ";
    else cout<<"0"<<" ";
    return 0;
 
    if (d[0]<=255 && d[0]>=0)
        cout<<"1"<<" ";
    else cout<<"0"<<" ";
    return 0;
 
    if (e[0]=='.' || e[1]=='.' || e[2]=='.')
        cout<<"1"<<" ";
    else 
        cout<<"0"<<" ";
    return 0;
}
я написал так.
но когда я ввожу запятые он всё равно говорит что это айпи адрес.
примерно так.
255,0,0,0
выводит
1.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.10.2010, 19:51
Ответы с готовыми решениями:

Строка: Определите, является ли она действительным числом
Дана строка. Определите, является ли она действительным числом.

Написать регулярное выражение, определяющее является ли данная строчка валидным URL адресом
Помоги, решить задачу. Написать регулярное выражение, определяющее является ли данная строчка...

Проверить, является ли строка ip-адресом
Есть такой код Требуется проверить является ли число ip-адресом q = input() #запрос самого ip...

Определить, является ли строка ip-адресом
Есть строка в textbox с любым текстом. Оно может быть или как &quot;192.168.0.1-192.168.0.10&quot;, или...

12
392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
29.10.2010, 20:08 2
37 строчек!!!
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
 
int main()
{
   int a, b, c, d;
   scanf("%i%*c%i%*c%i%*c%i", &a, &b, &c, &d);
   (a>=0 && a<=255 && b>=0 && b<=255 && c>=0 && c<=255 && d>=0 && d<=255 ) ?
   std::cout << 1 : std::cout << 0;
   return 0;
}
1
4 / 4 / 0
Регистрация: 24.10.2010
Сообщений: 200
29.10.2010, 20:12  [ТС] 3
мы scanf не проходили=)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
int main () {
    int a[100];
    char x,y,z;
    cin>>a[0]>>x>>a[1]>>y>>a[2]>>z>>a[3];
    
    if (a[0]<=255 && a[0]>=0 && a[1]<=255 && a[1]>=0 && a[2]<=255 && a[2]>=0 && a[3]<=255 && a[3]>=0 && 
        x=='.' && y=='.' && z=='.')
        cout<<"1"<<" ";
    else 
        cout<<"0"<<" ";
    
    return 0;
}
решил=)
0
392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
29.10.2010, 20:22 4
теперь только точки ...
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
int main()
{
   int a, b, c, d;
   char p1, p2, p3;
   scanf("%i%c%i%c%i%c%i", &a, &p1, &b, &p2, &c, &p3, &d);
   (a>=0 && a<=255 && b>=0 && b<=255 && c>=0 && c<=255 && d>=0 && d<=255 && 
      p1 == '.' && p2 == '.' && p3 == '.') ?
   std::cout << 1 : std::cout << 0;
   return 0;
}
1
Freelance
Эксперт С++
2886 / 1821 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
29.10.2010, 20:24 5
Mayonez, Зачем замешовать Си и С++,если решыли писать на С++ так используйте cin,а не как у Вас scanf()
1
392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
29.10.2010, 20:27 6
Цитата Сообщение от Asics^ Посмотреть сообщение
Зачем замешовать Си и С++
в первом примере я хотел использовать подавление ввода в scanf, но потом оказалось, что нужно проверять точки и я быстро переделал
1
Freelance
Эксперт С++
2886 / 1821 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
29.10.2010, 20:32 7
Я так и не понял,чем Вас не устраивает cin ?
1
392 / 284 / 53
Регистрация: 26.12.2009
Сообщений: 874
29.10.2010, 20:41 8
вполне устраивает
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
int main()
{
   int a, b, c, d;
   char p1, p2, p3;
   std::cin >> a >> p1 >> b >> p2 >> c >> p3 >> d;
   (a>=0 && a<=255 && b>=0 && b<=255 && c>=0 && c<=255 && d>=0 && d<=255 && 
      p1 == '.' && p2 == '.' && p3 == '.') ?
   std::cout << 1 : std::cout << 0;
   return 0;
}
2
9 / 9 / 2
Регистрация: 03.04.2016
Сообщений: 90
06.04.2016, 17:05 9
Mayonez, Ваш код системой проверки не проходит. Failed test #6. Wrong answer. Можете поправить. Значит с условием задачи ответ не клеится! Да и через функцию stoi советуется, это ж для новичков, а вы сразу таким способом.

Добавлено через 6 минут
Hardcore, Ваш код то же самое:
Failed test #6. Wrong answer.
Нет решения пока...
Программисты, кто-нибудь с функцией stoi может закодить???
0
1550 / 875 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
06.04.2016, 18:24 10
AGPro,
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <regex>
 
int main()
{
    std::string str;
    std::getline(std::cin, str);
    std::regex reg("^((25[0-5]|2[0-4][0-9]|[1][0-9][0-9]|[0-9]{1,2})\\.){3}(25[0-5]|2[0-4][0-9]|[1][0-9][0-9]|[0-9]{1,2})$");
    std::cout << std::regex_match(str, reg) << std::endl;
}
1
5224 / 3196 / 362
Регистрация: 12.12.2009
Сообщений: 8,101
Записей в блоге: 2
06.04.2016, 18:26 11
avgoor, вместо {3} нужно {2}, но это жесть конечно
0
1550 / 875 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
06.04.2016, 18:31 12
Kastaneda, Почему {2}? Три октета с точкой один без.

Добавлено через 2 минуты

Не по теме:

Цитата Сообщение от Kastaneda Посмотреть сообщение
но это жесть конечно
Конено, так можно Сатану призвать, но работает.

0
Kastaneda
06.04.2016, 18:34     Является ли данная строка действительным IP-адресом
  #13

Не по теме:

avgoor, да, все верно, извиняюсь. Голова своей задачей занята, зачем-то на форум залез)

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.04.2016, 18:34

Дана строка символов. Проверьте,является ли данная строка палиндромом
Парни нужна помощь,нужен код решения этой задачи на языке с++. Дана строка символов....

Определить, что строка является IP-адресом
Дан некоторый текстовый файл , в нем какие то цифры (напоминающие ip адрес) в каждой строчке Как...

Является ли заданная строка правильным IP-адресом
В сети интернет каждому компьютеру присваивается четырехбайтовый код, который принято записывать в...

Является ли строка правильным e-mail - адресом
Добрый день. Есть кодstring = &quot;123-451-38 56/16/23 my@mail.ru(34) 16.апреля.2015&quot; regex =...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru