2012-03-21 165 views
1

我想在字符串的開始處添加^,並在末尾添加$C++在開始處和結尾處添加字符串

std::string s1 (".V/.B/.R/"); 

是最好的使用方法嗎?

s1.append(s1.begin(),"^"); 
s1.append(s1.end(),"$"); 

感謝您的幫助。

+0

「最佳」?性能?清晰? – leftaroundabout 2012-03-21 11:43:44

+0

如果很清楚@leftaroundabout – CodersSC 2012-03-21 11:44:44

+0

的性能真的會很好,至少在C++ 11中(感謝移動語義),思考它,'^「+ strValue +」$「'的好方法可能不會甚至比C型手動內存分配的性能明顯更差,所以我肯定會這樣做。 – leftaroundabout 2012-03-21 11:50:42

回答

7

這將是insert而非append,但除此之外,它似乎確定。

一個更簡單的方法是

s1 = '^' + s1 + '$'; 
+1

用於處理char文字的+1 – ipc 2012-03-21 11:52:04

2

你的例子是行不通的,因爲他們沒有使用任何的stl::string::appendoverloads,您可以創建一個新的字符串和單獨添加的元素,即

std::string FormatText(const std::string& rstrInput) 
{ 
    std::string strOutput = "^"; 
    strOutput += rstrInput ; 
    strOutput += "$"; 
    return strOutput; // RVO will eliminate copying 
} 

但是可能有很多方法可以做到這一點,追加可能是最簡單的。

std::string strResult = "^" + strValue + "$"; 

你也可以使用stringstreams ..

std::stringstream ss; 
ss << "^" << strValue << "$"; 
std::string strResult = ss.str(); 

... printf類型串成形等等等等。在何種意義上

+0

什麼都沒有提及他可能的意圖的「insert」? – 2012-03-21 21:34:34

相關問題