Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.63
Hardcore
4 / 4 / 0
Регистрация: 24.10.2010
Сообщений: 200
29.10.2010, 19:51     Является ли данная строка действительным IP-адресом #1
Для того, чтобы получить доступ в Интернет, каждый компьютер назначен так называемый 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.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mayonez
 Аватар для Mayonez
379 / 271 / 20
Регистрация: 26.12.2009
Сообщений: 875
29.10.2010, 20:08     Является ли данная строка действительным IP-адресом #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;
}
Hardcore
4 / 4 / 0
Регистрация: 24.10.2010
Сообщений: 200
29.10.2010, 20:12  [ТС]     Является ли данная строка действительным IP-адресом #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;
}
решил=)
Mayonez
 Аватар для Mayonez
379 / 271 / 20
Регистрация: 26.12.2009
Сообщений: 875
29.10.2010, 20:22     Является ли данная строка действительным IP-адресом #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;
}
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
29.10.2010, 20:24     Является ли данная строка действительным IP-адресом #5
Mayonez, Зачем замешовать Си и С++,если решыли писать на С++ так используйте cin,а не как у Вас scanf()
Mayonez
 Аватар для Mayonez
379 / 271 / 20
Регистрация: 26.12.2009
Сообщений: 875
29.10.2010, 20:27     Является ли данная строка действительным IP-адресом #6
Цитата Сообщение от Asics^ Посмотреть сообщение
Зачем замешовать Си и С++
в первом примере я хотел использовать подавление ввода в scanf, но потом оказалось, что нужно проверять точки и я быстро переделал
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
29.10.2010, 20:32     Является ли данная строка действительным IP-адресом #7
Я так и не понял,чем Вас не устраивает cin ?
Mayonez
 Аватар для Mayonez
379 / 271 / 20
Регистрация: 26.12.2009
Сообщений: 875
29.10.2010, 20:41     Является ли данная строка действительным IP-адресом #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;
}
AGPro
1 / 1 / 0
Регистрация: 03.04.2016
Сообщений: 90
06.04.2016, 17:05     Является ли данная строка действительным IP-адресом #9
Mayonez, Ваш код системой проверки не проходит. Failed test #6. Wrong answer. Можете поправить. Значит с условием задачи ответ не клеится! Да и через функцию stoi советуется, это ж для новичков, а вы сразу таким способом.

Добавлено через 6 минут
Hardcore, Ваш код то же самое:
Failed test #6. Wrong answer.
Нет решения пока...
Программисты, кто-нибудь с функцией stoi может закодить???
avgoor
562 / 352 / 83
Регистрация: 05.12.2015
Сообщений: 1,137
06.04.2016, 18:24     Является ли данная строка действительным IP-адресом #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;
}
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
06.04.2016, 18:26     Является ли данная строка действительным IP-адресом #11
avgoor, вместо {3} нужно {2}, но это жесть конечно
avgoor
562 / 352 / 83
Регистрация: 05.12.2015
Сообщений: 1,137
06.04.2016, 18:31     Является ли данная строка действительным IP-адресом #12
Kastaneda, Почему {2}? Три октета с точкой один без.

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

Не по теме:

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

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.04.2016, 18:34     Является ли данная строка действительным IP-адресом
Еще ссылки по теме:

C++ List iterator что делает данная строка кода
C++ Является ли заданная строка правильным IP-адресом

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

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

Не по теме:

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

Yandex
Объявления
06.04.2016, 18:34     Является ли данная строка действительным IP-адресом
Ответ Создать тему
Опции темы

Текущее время: 03:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru