麻烦在C ++中存储查询字符串中的参数

时间:2015-03-17 00:03:51

标签: c++ cgi

我试图解析查询字符串并将每个参数存储在特定字符串(例如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;
   }

0 个答案:

没有答案