2012-03-27 51 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