首页 > 其他分享 >XDF OJ P Answer-C P1008

XDF OJ P Answer-C P1008

时间:2024-11-21 19:42:41浏览次数:3  
标签:XDF domain OJ URL cin url Answer include string

 (说明:此代码只作为参考,并非绝对的正确代码,但是保证AC)

题目:寻找域名

描述

统一资源定位符(Uniform Resource Locator,缩写为URL)是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。

典型的URL语法应该如下:

scheme://domain:port/path?query_string#fragment_id

在这个问题中模式/协议(scheme)和域名(domain)是必须的其他都是可选的。

例如下面包含一些正确的URL:

http://dict.bing.com.cn/#%E5%B0%8F%E6%95%B0%E7%82%B9

http://www.mariowiki.com/Mushroom

https://mail.google.com/mail/?shva=1#inbox

http://en.wikipedia.org/wiki/Bowser_(character)

http://fync.acmclub.com/

ftp://222.207.30.4/

http://www.int255.com:8080/bbs/

现在你的任务是从给定的URL中找出域名。

输入描述

输入整数T,接下来包含T组测试用例,每个URL各占一行(测试数据不超过10组,每组数据不超过200个字符),请读到文件末尾。

输出描述

对于每组测试用例,你应该输出给定URL中的域名,每个输出各占一行。

参考代码:

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

string getDomain(const string& url) {
    string domain;
    size_t protocolPos = url.find("://");
    
    if (protocolPos != string::npos) {
        domain = url.substr(protocolPos + 3);
    } else {
        domain = url;
    }
    size_t pathPos = domain.find('/');
    if (pathPos != string::npos) {
        domain = domain.substr(0, pathPos);
    }
    
    return domain;
}

int main() {
    int T;
    cin >> T;
    cin.ignore();

    vector<string> urls;
    string url;
    
    while (T-- > 0 && getline(std::cin, url)) {
        urls.push_back(url);
    }

    for (const string& u : urls) {
        string domain = getDomain(u);
        cout << domain << endl;
    }

    return 0;
}

代码解释:

头文件

  • #include <iostream>:用于标准输入输出流(如cincout)。
  • #include <string>:用于处理字符串。
  • #include <sstream>:虽然在本代码示例中没有直接使用到,但通常用于字符串流操作。
  • #include <vector>:用于创建动态数组。

命名空间

  • using namespace std;:这样可以在代码中省略std::前缀,直接使用cincout等。

函数定义

  • string getDomain(const string& url):这个函数接收一个URL作为参数,然后返回该URL的域名部分。
    • 首先尝试找到协议部分(例如http://https://)。如果找到了,则从其后开始截取URL。
    • 如果找不到协议部分,则假设整个字符串都是URL。
    • 然后查找第一个斜杠/的位置来确定路径开始的地方,并将域名截取至该位置之前。

主函数

  • int main():程序的入口点。
    • 定义变量T来存储用户要输入的URL数量。
    • 使用cin >> T;读取这个数字。
    • 调用cin.ignore();忽略缓冲区中的换行符。
    • 创建一个vector<string> urls;来保存所有的URL。
    • 使用循环读取每个URL并添加到urls向量中。
    • 对于每一个存储在urls中的URL,调用getDomain(u)获取其域名,并通过cout将其输出。

标签:XDF,domain,OJ,URL,cin,url,Answer,include,string
From: https://blog.csdn.net/yourbestchums/article/details/143868295

相关文章

  • QOJ7789-一道位运算找规律好题
    题面原题链接思路先从特殊性质入手,考虑\(s=0\)的情况。不难发现,路径是已经确定的,那么我们可以考虑手搓几步。\[0000\longrightarrow0001\longrightarrow0011\longrightarrow0010\longrightarrow0000\longrightarrow0100\longrightarrow0101\cdots\]可以看出似乎是两个二进......
  • QOJ6958-复杂的双树上问题以及简单的解决方式
    题面原题链接思路我们考虑如何判断一对\(T_1,T_2\)是否合法。首先,我们可以发现\(T_2\)上的边权只能有至多一组合法解,这是因为对于任意一条边连接\(u,v\),它的边权必然是\(dis_1(u,v)\),所以事实上我们是没有权限给\(T_2\)任意赋权的,这样题目就简单了一些。那么,我们如何......
  • HDOJ 1421 搬寝室 线性dp
    #include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintN=2010,M=1010,MAX=-1;inta[N];intdp[M][N];signedmain(){ intn,m; while(cin>>n>>m) { for(inti=1;i<=n;i++)cin>>a[i]; sort(a+1,......
  • 并查集 poj 2524,1611,1703,2236,2492,1988 练习集【蓝桥杯备赛】
    目录前言  并查集优势UbiquitousReligionspoj2524  问题描述  问题分析  代码TheSuspectspoj1611  问题描述  问题分析  代码   WirelessNetworkpoj2236  问题描述  问题分析  代码分类带权并查集合  权值树构......
  • Visual Studio 的程序打包工具Installer Projects
    我们常常写好应用程序,但是不知道如何交付到用户手里面,所以今天写的这篇文章就是怎么交付过去。我们编辑好程序后,编译会生成可执行文件,但是我们调用一些库,也是文件,不可能给别人一个.zip压缩包,所以这个时候,我们就需要将他变成一个安装程序,让用户进行安装,甚至里面有一些自定义操......
  • CryptoJS加密(网络安全)
    CryptoJS(crypto.js)为JavaScript提供了各种各样的加密算法。des对称加密在对称加密算法中,数据发信方将明文和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解......
  • 【数据结构OJ】【图论】货币套汇(图路径)
    题目描述套汇是指利用货币汇兑率的差异将一个单位的某种货币转换为大于一个单位的同种货币。例如,假定1美元可以买0.7英镑,1英镑可以买9.5法郎,1法郎可以买到0.16美元。通过货币兑换,一个商人可以从1美元开始买入,得到0.7×9.5×0.16=1.064美元,从而获得6.4%的利润。给定n种......
  • winform,wpf利用Autoupdater.NET.Official实现自动更新,并且利用Setup project部署(母
    Winform部分新建winform/wpf,我这里创建的是winform,程序名UpdateDemo在NuGet安装必备库Autoupdater.NET.Official,我这里安装的版本是1.9.2在页面上写一个label在Form1的构造函数写入代码AutoUpdater.Start("http://172.30.3.158:80/AutoUpdater.xml");这里填写自己的IPpublic......
  • xdoj494 回文数整除问题
    题目:回文数整除问题问题描述一个五位回文数(从左到右与从右到左读出的数相同),M为大于1的整数,那么五位回文数中能被M整除的有多少个?输入格式输入一个整数M。输出格式输出两个整数,M和能被整除五位回文数的个数,用空格隔开。样例输入13样例输出1369样例说明......
  • CSC3050 Project 3: RISC-V Simulator
    CSC3050Project3:RISC-VSimulatorwithRVV1BackgroundRISC-V,anopenstandardinstructionsetarchitecture(ISA),hasrapidlybecomeapivotalforceinacademicresearchandindustrialdevelopmentduetoitsflexibilityandopen-sourcenature.Unlikep......