2013-12-24 60 views
-1

我想用C++編輯大量的html文件。除了當我嘗試編輯src標記時,它全部正在工作。我認爲這是因爲引號。這是我的代碼。在html中編輯src =「」標記的C++

string strReplace2 = "src=\"\""; //string to replace 

strTemp = "src=\"http://localhost/Media/TV Shows/The Big Bang Theory Season 6/" + filename + "\""; 

當我運行程序一切正常,除了部分被寫入文件。

+1

這需要更多的澄清。 – usr2564301

+0

我不明白:「除了當我嘗試編輯src標籤時,它的所有工作都正常工作」和「除了那部分正在寫入文件之外,一切正常。」聽起來像是一個矛盾。有什麼問題? –

+0

您的問題可能與包含空格的新src字符串有關。空格應在URL中編碼%20。你的問題根本不清楚...... –

回答

0

你可以試試這個行情之間,更換東西..

void replace_between_quotes(std::string &str, const std::string &replacement) 
{ 
    std::size_t pos_f = str.find_first_of("\""); 
    std::size_t pos_e = str.find_last_of("\""); 

    if (pos_f < pos_e && pos_f != std::string::npos && pos_e != std::string::npos) 
    { 
     std::size_t len = pos_e - pos_f - 1; 
     str.replace(pos_f + 1, len, replacement); 
    } 
} 

int main() 
{ 
    std::string filename = "somefile"; 
    std::string str = "src=\"http://localhost/Media/TV Shows/The Big Bang Theory Season 6/" + filename + "\""; 
    replace_between_quotes(str, filename); 
    std::cout<<str; 
} 
+0

如果第一個之後有多個引號(在src ='之後),那麼這將不起作用。 –

+0

你確定嗎?你應該試試。它找到了第一個引號,然後是最後一個引號。它並不關心它們之間的內容。它確實有效。 – Brandon

+0

如果你解析'src =「hello」tag =「world」'你認爲'find_last_of'會引起零點嗎?你的代碼有缺陷。 –