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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
millworm
0 / 0 / 0
Регистрация: 27.04.2012
Сообщений: 74
#1

Проверка введенного url адреса на корректность - C++

28.02.2014, 17:58. Просмотров 348. Ответов 4
Метки нет (Все метки)

Здравствуйте, требуется ваша помощь
не могли бы подсказать как организовать проверку введенного url адреса на корректность?
есть конечно вариант вбить эту строку как символьный массив и проверять по символьно протокол http или https но вот как быть дальше ума не приложу
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2014, 17:58     Проверка введенного url адреса на корректность
Посмотрите здесь:

C++ Проверка адреса файла, введенного с клавиатуры
Проверка на корректность ввода года C++
Проверка на корректность операции C++
Портирование кода на С++ (проверка вводимых данных пользователем на корректность) C++
C++ Проверка введенных данных cin на корректность
C++ Проверка на корректность логического выражения
C++ Проверка на корректность входных данных
Проверка на корректность введенных данных C++
C++ Проверка на корректность ввода числа
C++ Проверка указателя на корректность
Проверка строки на корректность C++
C++ Нужно проверить на корректность ввода E-mail адреса

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Avazart
7066 / 5243 / 263
Регистрация: 10.12.2010
Сообщений: 23,070
Записей в блоге: 17
28.02.2014, 18:03     Проверка введенного url адреса на корректность #2
Ну не проще сразу проверить его сделав HTTP-запрос и проверить результат ?
millworm
0 / 0 / 0
Регистрация: 27.04.2012
Сообщений: 74
28.02.2014, 18:09  [ТС]     Проверка введенного url адреса на корректность #3
я так же сказал преподавателю, но ему так не надо
Avazart
7066 / 5243 / 263
Регистрация: 10.12.2010
Сообщений: 23,070
Записей в блоге: 17
28.02.2014, 18:37     Проверка введенного url адреса на корректность #4
Цитата Сообщение от millworm Посмотреть сообщение
есть конечно вариант вбить эту строку как символьный массив и проверять по символьно протокол http или https но вот как быть дальше ума не приложу
Тогда только так.
Нужно читать про URI/URL и на основе этого делать анализ.
Кроме http и https, к примеру, нужно не допускать кириллицу (и других не анси символов).
DrOffset
6858 / 4069 / 927
Регистрация: 30.01.2014
Сообщений: 6,867
28.02.2014, 19:32     Проверка введенного url адреса на корректность #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от millworm Посмотреть сообщение
не могли бы подсказать как организовать проверку введенного url адреса на корректность?
Ну например так:
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
36
37
38
39
40
#include <iostream>
#include <string>
#include <boost/regex.hpp>
 
int main()
{
    try
    {
        boost::regex urlCheck("^((https?)|(ftp))://"                         // protocol
            "(([a-z0-9$_\\.\\+!\\*\\'\\(\\),;\\?&=-]|%[0-9a-f]{2})+"         // username
            "(:([a-z0-9$_\\.\\+!\\*\\'\\(\\),;\\?&=-]|%[0-9a-f]{2})+)?"      // password
            "@)?(?#"                                                         // auth requires @
            ")((([a-z0-9]\\.|[a-z0-9][a-z0-9-]*[a-z0-9]\\.)*"                // domain segments AND
            "[a-z][a-z0-9-]*[a-z0-9]"                                        // top level domain  OR
            "|((\\d|[1-9]\\d|1\\d{2}|2[0-4][0-9]|25[0-5])\\.){3}"
            "(\\d|[1-9]\\d|1\\d{2}|2[0-4][0-9]|25[0-5])"                     // IP address
            ")(:\\d+)?"                                                      // port
            ")(((\\/+([a-z0-9$_\\.\\+!\\*\\'\\(\\),;:@&=-]|%[0-9a-f]{2})*)*" // path
            "(\\?([a-z0-9$_\\.\\+!\\*\\'\\(\\),;:@&=-]|%[0-9a-f]{2})*)"      // query string
            "?)?)?"                                                          // path and query string optional
            "(#([a-z0-9$_\\.\\+!\\*\\'\\(\\),;:@&=-]|%[0-9a-f]{2})*)?"       // fragment
            "$");
 
        std::string url;
        std::getline(std::cin, url);
 
        if(boost::regex_match(url, urlCheck))
        {
            std::cout << "URL is correct.\n";
        }
        else
        {
            std::cout << "URL is not correct.\n";
        }
    }
    catch(std::exception const & e)
    {
        std::cerr << e.what();
    }
}
Yandex
Объявления
28.02.2014, 19:32     Проверка введенного url адреса на корректность
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru