2012-08-23 58 views
-2

我必須將originalString複製到newString,第一個字符除外(~)。 originalString的內容不應改變。如何複製除第一個字符之外的std :: string?

std::string originalString("~myOriginalString"); 
std::string newString; 
… 
// expected result: newString is "myOriginalString", originalString is unmodified. 

回答

3

一般來說,這種類型的操作可以與迭代進行:

string newString(originalString.begin()+1, originalString.end()); 
+0

+1提出的最通用的解決方案。 –

+0

@JamesKanze:那麼,最通用的解決方案將使用'std :: begin' /'std :: end'和'boost :: next'(取決於所需的靈活類型)。 – Mankarse

+0

從內部來看,確實如此。但這意味着你需要C++ 11,而我們許多人在生產中還不能使用它。 –

0

std::string有一個方法,substr(),這不只是這個。看看它。

0

使用substr字符串成員函數:

newString = originalString.substr(1) 
0

如果它的std :: string,你可以做到以下幾點:

newString = originalString; 
newString.replace(0, 1, ""); 

或者還有一種叫erase方法:

newString = originalString; 
newString.erase(0, 1); 

基本上這代替了從0t開始的部分長度爲1的h字符由空字符串組成。第二種方法不能取代,而是直接刪除這部分。

0

您可以使用C-TOR爲:

string newString(originalString, 1);

相關問題