【问题标题】:how do I store multiple uri values on an array?如何在数组上存储多个 uri 值?
【发布时间】:2021-05-21 02:47:24
【问题描述】:

我想在array 上存储多个数字,在我的URLuri 上传递多个数字,例如我有 url:

localhost:8000/234343,43456,7768

如何将数字存储在这样的数组中:

array[0]=234343
array[1]=43456
array[2]=7768

【问题讨论】:

  • 就这样?
  • 差不多就是这样。声明你的数组,然后存储你的值。
  • 如何从 uri 中一一取值?
  • std::getline 有第三个参数,您可以使用它来更改默认的分隔符 '\n'。将 URL 字符串弹出到 std::istringstream 中,然后在流上使用 getline 以剥离所需的令牌。 std::getline(steam, junkstring, '/') 让您获得第一个令牌。 std::getline(steam, tokenstring, ',')得到一个token,然后用相应的转换函数将tokenstring转换成数字。

标签: c++ web url uri


【解决方案1】:

如果你知道 "," 是分隔符(分隔数字的字符)并且你知道有多少个,你可以使用 string::find():

string array[3];
std::string uri = "localhost:8000/234343,43456,7768";
size_t pos = 0;
std::string delimiter = "/";
pos = uri.find(delimiter);
if (pos == std::string::npos)
   throw exception("bad uri");   
uri.erase(0, pos + delimiter.length());

delimiter = ",";
std::string token;
while ((pos = uri.find(delimiter)) != std::string::npos && i < 3) {
    token = s.substr(0, pos);
    array[i] = token;
    uri.erase(0, pos + delimiter.length());
    i++;
 }

【讨论】:

    猜你喜欢
    • 2013-11-08
    • 2013-12-12
    • 1970-01-01
    • 2011-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-19
    • 1970-01-01
    相关资源
    最近更新 更多