Использование cout для печати, начиная с определенного места - PullRequest
0 голосов
/ 27 марта 2012

Допустим, у меня была строка, которая была

<html>
<head><title>301 Moved Permanently</title><head>

и так Я использую str.find();, чтобы найти, где начинается тег заголовка, и он дает мне правильную позицию, но как мне будет печатать только

301 Moved Permanently

Мой код:

    string requestedPage = page.GetBody(); //Get the body of a page and store as string "requestedPage"

    int subFromBeg = requestedPage.find("<title>"); //Search for the <title> tag
    int subFromEnd = requestedPage.find("</title>"); //Search for the </title> tag



    std::cout << requestedPage; //before

    requestedPage.substr( subFromBeg, subFromEnd );

    std::cout << requestedPage; //after

Ответы [ 2 ]

1 голос
/ 27 марта 2012
requestedPage.substr( subFromBeg, subFromEnd );

должно быть

requestedPage = requestedPage.substr( subFromBeg, subFromEnd );

std::string::substr не изменяет строку, она возвращает измененную копию строки.

0 голосов
/ 27 марта 2012

substr - вот как я бы это сделал. Что-то вроде cout << str.substr(str.find("title") + 6, 21); даст вам 21-символьную строку, начинающуюся с 6 символов после 'title' (надеюсь, я правильно посчитал свои индексы, но вы поняли идею).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...