2012-03-27 80 views
0

因此,可以说我有一个字符串,它是使用COUT打印从某地方

<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 
+0

我会在我尝试一些东西后添加我的整个代码 – THUNDERGROOVE 2012-03-27 18:26:32

+1

请不要向我们展示您的整个原始程序。请将您的程序减少到绝对**最小**可能**完整**程序,仍然显示问题,然后向我们显示*。*。请参阅http://sscce.org获取更多信息。提示:对于这个问题,如果示例程序长度大于10行,则可能太长。 – 2012-03-27 18:30:13

+1

注意:这不是一个完整的程序。 – 2012-03-27 18:35:41

回答

1
requestedPage.substr(subFromBeg, subFromEnd); 

应该

requestedPage = requestedPage.substr(subFromBeg, subFromEnd); 

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

+0

Ohhhhh这一切都有道理吧!你们是如此大的帮助! – THUNDERGROOVE 2012-03-27 18:37:24

0

substr是我该怎么做的。像cout << str.substr(str.find("title") + 6, 21);这样的东西会给你一个21个字符的字符串,从'title'后面的6个字符开始(希望我可以正确计算我的索引,但你明白了)。

+0

我试过了,在确定要从字符串的以太末端删除多少东西并且将它打印出来之后,仍然会打印出所有东西。 – THUNDERGROOVE 2012-03-27 18:25:02

+0

@THUNDERGROOVE:然后,您没有正确使用'substr'。 – 2012-03-27 18:31:52