XDOJ1104 - 统一资源定位符中的远程服务器地址检测

Description

统一资源定位符也被称为网页地址,是因特网上标准的资源的地址(Address)。它最初是由蒂姆·伯纳斯-李发明用来作为万维网的地址的。现在它已经被万维网联盟编制为因特网标准RFC1738了。

因特网上的可用资源可以用简单字符串来表示,被称为“统一资源定位器”(URL,Uniform / Universal Resource Locator)。URL是一种标准化的命名方法,它可以用统一的格式来表示Internet提供的各种服务中信息资源的地址,以便在浏览器中使用相应的服务。

统一资源定位符的标准格式如下:
协议类型://服务器地址(:端口号)/路径/文件名

在应用中,我们常常需要从一条URL中截取远程服务器地址部分(IP地址或域名),以便进一步处理。为此我们提出了一个新算法来实现该功能,基于……

呃,写到这里卡住了,现在需要你来实现这个“新算法”,输出所给URL中的远程服务器地址部分。

Input

输入数据的第一行是一个正整数T(0<T<=100),表示有T组测试数据。
每组测试数据只有一行,包含一条URL(长度小于1000个字符,为可见ASCII字符),其中不包含空格,符合URL标准格式。

Output

对于每组测试数据,在一行上输出该URL地址中的远程服务器地址部分(IP地址或域名,不包含端口号)。

Sample Input

5
http://acm.xidian.edu.cn/
http://qinz.maybe.im/
https://www.something.com:8080/p?id=0
ftp://ftp.anything.com/nothing.zip
http://127.0.0.1/a/b/c/d/e

Sample Output

acm.xidian.edu.cn
qinz.maybe.im
www.something.com
ftp.anything.com
127.0.0.1

解题思路:

如果用string的话,这个题就变得非常简单.另外需要注意的是,如果要检查返回值,一定要用string::sizetype,不能用int或unsigned作为返回值型别。

#include<iostream>
#include<string>
using namespace std;

int main()
{
    int T;
    cin>>T;
    for(int test=0;test<T;++test)
    {
        string url;
        cin>>url;
        string server;
        string::size_type pos1,pos2;
        pos1 = url.find("://");
        pos2 = url.find(":",pos1+3);
        if(pos2==string::npos)
            pos2 = url.find("/",pos1+3);
        server = url.substr(pos1+3,pos2-pos1-3);
        cout<<server<<endl;
    }
    return 0;
}

 

最后欢迎大家访问我的个人网站: 1024s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值