Как проверить, является ли указанная строка допустимым URL-адресом или нет, используя код C++
существует любой возможный способ проверить, является ли указанная строка допустимым url-адресом или нет. Решение должно быть на языке c++ и работать без интернета.
пример строки
хорошо.утром
фу.ГОО.ку
https://hhhh
hdajdklbcbdhd
8881424.сайт www.hfbn55.ко.в/sdfsnhjk
://dgdh24.vom
dfgdfgdf(2001)/. com/sdgsgh
\adiihsdfghnhg.ко.inskdhhj
АСЭР//ВСП.gtyuh.ко.Великобритания/kdsfgdfgfrgj
Что я уже пробовал:
код #include "файл stdafx.ч"
#включить & lt;windows. h>
использование системы пространств имен;
использование пространства имен System:: IO;
int iDomCount =0;
пустота доминирует();
void main(int argc, _TCHAR* argv[])
{
CString Uri, Temp, strDname;
инт мот,МПК,илен;
чар функция cstr;
пробовать
{
cout<< " введите Url\n";
Uri=Console:: ReadLine();
Temp=Uri;
if ((Uri. Find(L "https", 0)) >= 0)
Ури=Ури.Средний(8);
else if ((Uri. Find(L "http", 0)) >= 0)
Ури=Ури.Средний(7);
if ((Uri. Find(L " www.", 0)) >= 0)
Ури=Ури.Средний(4);
для (тип int лен=0;лен &ЛТ; Ури.Метода getlength может служить метод();лен++)
{
МПК=Ури.GetAt(лен);
if ( ((iAsc > 64) && (iAsc < 91)) || ((iAsc & gt; 96) & & amp; (iAsc < 123)) | / ((iAsc & gt; 47) & & amp; (iAsc < 58)) | / (iAsc = = 46) | /(iAsc == 45))
мот++;
ещё
перерыв;
}
if (iLoc < 1)
{
cout<< " недопустимый Url-адрес";
система ("пауза");
Ури="";
Консоль:: Очистить();
}
ещё
{
Uri=Uri. Mid(0, (iLoc));
инт нашла=Ури.ReverseFind(Л'.');
if (ifound < 0)
{
cout<< " недопустимый Url-адрес";
система ("пауза");
Ури="";
Консоль:: Очистить();
}
ещё
{
strDname=Uri. Mid(ifound);
}
}
}
ловить(...)
{
}
}
пустота доминирует()
{
StreamReader^ sr = gcnew StreamReader( "dnmout.txt" );
Строки^ ;
// Чтение и отображение строк из файла до конца
// файл достигнут.
while (line = sr- & gt;ReadLine() )
{
Однако стр3(линия);
char *sz;
sprintf(sz, "%S", str3);
dname[iDomCount]=sz;
iDomCount ++;
}
}
//это код, который я пробовал. но он работает только с предопределенным списком поддоменов, я также пробовал регулярное выражение С c++, но оно не будет работать со всеми типами url. пожалуйста, любое решение для этого.
Mohibur Rashid
Я бы предложил использовать регулярное выражение. Pcre - это ваш инструмент.