argtokenizer.cpp

来自「贡献一个基于osip协议栈的用户代理」· C++ 代码 · 共 46 行

CPP
46
字号
/** *  Copyright (C) 2005 Savoir-Faire Linux inc. *  Author: Yan Morin <yan.morin@savoirfairelinux.com> * *  This program is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; either version 2 of the License, or *  (at your option) any later version. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */#include "argtokenizer.h"#include <ios>#include <iostream>#include <sstream>#include <cc++/url.h>#include <cstring>TokenList ArgTokenizer::tokenize(const std::string& str) {  std::istringstream s(str);  std::string output;  TokenList args;  while(s.good()) {    s >> output;    // if we have a string that end with an space    // failbit is set    if ( ! ( s.rdstate() & std::ios_base::failbit) ) {      char *tmp = new char[output.length()+1];      strcpy(tmp, output.c_str());      ost::urlDecode(tmp, NULL);      args.push_back(tmp);      delete[] tmp; tmp = NULL;    }  }  return args;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?