我试图解析查询字符串并将每个参数存储在特定字符串(例如apr)中,但我很难搞清楚它。现在我能够从URL显示每个参数,如:... assign09.cgi?apr = 2& term = 4& amount = 7。我能够得到' 2' ' 4'和' 7'除此之外,但每当我尝试为字符串赋值时,我都会收到内部服务器错误。此外,我认为我正在使用字符串,因为我得到了一个'?'在我的for循环输出的最后。
我的主要问题是:这是解析查询字符串以获得我想要的好方法吗?
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
int main ()
{
cout << "Content-type:text/html\r\n\r\n";
string s = getenv("QUERY_STRING");
string apr;
string loanTerm;
string loanAmount;
string monthlyPayment;
// apr, loanTerm, and monthlyPayment
string args[3];
cout << "<html>\n";
cout << "<head>\n";
cout << "<title>Hello World - First CGI Program</title>\n";
cout << "</head>\n";
cout << "<body>\n";
cout << "<h1>Monthly Mortgage</h1>\n";
cout << "<p>" << s << "</p>\n";
for(int i = 0; i < s.length(); i++)
{
if(s[i] == '=')
{
for(int k = i + 1; s[k] != '&'; k++)
{
cout << "<p>" << s[k] << "</p>";
}
}
}
cout << "</body>\n";
cout << "</html>\n";
return 0;
}