由于直接访问可能无权限,我把题贴这了
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;
}