📄 10d2.cpp
字号:
/*
NIIT 《C++ & CGI PROGRAMMING &SCRRIPTING》 Skill Base
教材P10.14 10.D.2
审核:周永 Laozhou@swpi.edu.cn 0:00 2004-10-19
测试环境:Microsoft Windowsn 2000(VC++);Red Hat Linux 7.3;Red Hat Linux 9.0
*/
#include <iostream>
#include <string>
using namespace std;
void replaceAll(string &src, const string &findstr, const string &replstr)
{
int found = src.find(findstr);
while(found != string::npos)
{
src.replace(found, findstr.length(), replstr);
found = src.find(findstr);
}
}
void urldecode(string &s)
{
replaceAll(s, "%2C", ",");
replaceAll(s, "%0D%0A", "\n");
replaceAll(s, "+", " ");
}
void split(const string &s, char *delim, string dest[])
{
string temp = s;
int count = 0;
char *p;
p = strtok( (char *)temp.c_str() , delim);
//在Linux9.0下,需要用上面一行代码。VC++可以改写为下面一行:
//p = strtok(temp.begin(), delim);
while(p != NULL)
{
dest[count] = p;
count++;
p = strtok(0, delim);
}
for(int i=0;i != count;i++)
dest[i].erase(0,dest[i].find("=") + 1);
}
int main()
{
string s="N1=Jane+Marple&N2=St.+Mary+Mead%2C%0D%0AMuch+Benham";
urldecode(s);
string dest[2];
split(s, "&", dest);
cout << "N1 has the value : " << dest[0] << endl;
cout << "N2 has the value : " << dest[1] << endl;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -