К счастью, строка содержит функции-члены для достижения этой цели, хотя кто-то может предложить более «холодное» решение, это работает (и предназначено именно так или иначе):
#include <iostream>
#include <string>
#include <sstream>
int main(){
std::ostringstream oss;
oss << "GET /analysis HTTP/1.1\n\n"
<< "Host: localhost:4433\n\n"
<< "User-Agent: curl/7.47.0\n\n"
<< "Accept: */*\n\n"
<< "Authorization: Basic MTIzYWxpY2U6bWVyY3VyeQ==\n\n"
<< "Content-Length: 40\n\n"
<< "Content-Type: application/x-www-form-urlencoded\n\n"
<< "{\"u_id\": 62, \"g_id\": 14, \"a_type\": \"LR\"}";
std::string content = oss.str();
std::string delimiterStart = "Basic ";
std::string delimiterEnd = " ";
int start = content.find(delimiterStart) + delimiterStart.length();
std::string partial = content.substr(start, content.length());
partial = partial.substr(0, partial.find(delimiterEnd));
std::cout<<"STR: "<< partial;
return 0;
}
Этопри условии, что вы знаете два разделителя, которые вам понадобятся в любом случае, в противном случае, как бы вы извлекли что-нибудь, если не знаете, откуда и куда «схватить» что-нибудь?