Из строки, содержащей полный адрес веб-страницы, выделить доменное имя сайта - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Текст задания: Из строки содержащей полный адрес веб-страницы ( например, http://www.khai.edu/ru/site/facultet.html ), выделить доменное имя сайта (для данного примера - khai.edu).
#include<stdio.h>// 
#include<string.h>// 
#include<stdlib.h>// 
#include<locale.h>// 
 
void spravka();// 
void error();// прототип функции ошибка
int main(int argc, char *argv[])// подключение параметров командой строки
{
int nach,konec=999,k=1,i=0,j=1;// объявление переменных
char *pch,*pch1;
setlocale(LC_ALL, "Rus");// включение русского языка
printf("\nИсходная строка - доменное имя\n\n");
 
while(k<argc)
{
while(i<strlen(argv[j]))// вывод исходной строки
{
printf("%c",argv[j][i]);
i++;
}
i=0;
printf(" - ");
if(argv[k][1]=='?') // проверка на ?
spravka();
 
if(argv[k][10] !='.')// проверка на корректность данных
error();
 
pch=strchr(argv[k],'.');
while(pch!=NULL)// поиск точки
{
nach=pch-argv[k];
pch=strchr(pch+1,'.');
break;
}
 
for(int i=0; i<=nach;i++)
argv[k][i]='0';
pch1=strchr(argv[k],'/');
while(pch1!=NULL)// поиск /
{
konec=pch1-argv[k]+1;
pch1=strchr(pch1+1,'/');
break;
}
 
if(konec==999)// проверка на корректность данных
error();
 
for(int i=nach+1;i<konec-1;i++)// вывод результата
{
printf("%c",argv[k][i]);
 
}
printf("\n");
k++; j++;
 
}
return 0;
}
void error()//функция error
{
printf("\n\nОшибка: некорректный ввод данных!\nВведите адрес формата - [url]http://www.google.ru/[/url] \n");//вывод ошибки
exit(0);
}
 
void spravka()//функция справка
{
printf("Данная программа из строки, содержащий адрес веб-старницы,выделить доменное имя сайта\n");// вывод справки
exit(0);
}

Решение задачи: «Из строки, содержащей полный адрес веб-страницы, выделить доменное имя сайта»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    char str1[100],str2[100],str3[100];
    int i,j=0,k=0;
    gets(str1);
 
    for(i=0;i<strlen(str1);i++)
    {
        if (k == 2)
        {
            if (str1[i] != '/')
            {
                str2[j] = str1[i];
                j++;
            }
            else
            {
                str2[j] = '\0';
                break;
            }
        }
        
        if (str1[i] == '/')
            k++;
    }
    
    for(i=0;i<strlen(str2);i++)
    {
        if (str2[i] == 'w' && str2[i] == 'w')
            i=4;
        printf("%c",str2[i]);
    }
    printf("\n");
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.889 из 5
Похожие ответы