使用cout从特定地点开始打印

时间:2012-03-27 18:17:38

标签: c++ visual-c++

所以我想说我有一个字符串

<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 个答案:

答案 0 :(得分:1)

requestedPage.substr( subFromBeg, subFromEnd );

应该是

requestedPage = requestedPage.substr( subFromBeg, subFromEnd );

std::string::substr不修改字符串,它返回字符串的修改副本。

答案 1 :(得分:0)

substr就是这样做的。像cout << str.substr(str.find("title") + 6, 21);之类的东西会在'title'之后从6个字符开始给你一个21个字符的字符串(希望,我把我的索引算得正确,但你明白了。)