求助站外题
  • 板块灌水区
  • 楼主U_BOTE
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/12/16 19:34
  • 上次更新2024/12/16 22:27:56
查看原帖
求助站外题
1398862
U_BOTE楼主2024/12/16 19:34

由于直接访问可能无权限,我把题贴这了

B - 网络请求 时间限制:1 s内存限制:256 MB 一般网络请求分为get和post,get请求会把参数附带到请求网址上,例如:https://www.517coding.com/login?username=123&password=123

一个get请求的网址格式大致如下: 协议://域名/资源路径?参数

这里的参数都是key=value的形式,并且以 & 分割,以上述网址为例,username的值为123,password的值为123。

现在给定一个get请求的网址,你需要找到里面的参数,并且以key:value的方式输出。

输入 一个长度为 n(1≤n≤2∗10^3) 的字符串 s,合法的get请求链接(不包含空格)。

输出 第一行输出参数的个数 q,接着 q 行,每行把参数以key:value的形式输出

样例 输入 1

https://www.517coding.com/login?tso=nwc&icdmp=epx

输出 1

2
tso:nwc
icdmp:epx

输入 2

https://www.517coding.com/login

输出 2

0

我自己做的:

#include <bits/stdc++.h>
using namespace std;

int main() {
    string l1[100];
    string l2[100];
    string s;
    int cnt = 0;
    cin >> s;
    for(int i = 0; i < s.length(); i++)
    {
        if(s[i] == '?' || s[i] == '&')
        {
            cnt++;
            int j = 0;
            while(s[j] == ':')
            {
                l1[cnt][j] = s[j];
                j++;
            }
            j = 0;
            while(s[j] == '\0' || s[j] == '&')
            {
                l2[cnt][j] = s[j];
                j++;
            }
        }
    }
    cout << cnt << endl;
    for(int i = 1; i <= cnt; i++)
    {
        cout << l1[i] << ':' << l2[i] << endl;
    }
    return 0;
}
2024/12/16 19:34
加载中...