2014-12-01 74 views
0

所以通常我應該採取一個字符串的幾個第一個字符,並把它們放在這個字符串的末尾。爲了簡單起見,讓我們說 - 前兩個字符。我試過這樣的事情:字符串擦除附加

char a = mystring.at(0); 
char b = mystring.at(1); 
mystring.erase(0,1); 
mystring.append(a); 
mystring.append(b); 

這當然給出了從字符到字符串的轉換錯誤。但是,我不知道如何去做,還有什麼其他功能可以使用。有任何想法嗎?

+0

什麼是MyString的類型?它是一個std ::字符串? – 2014-12-01 19:17:04

回答

3

您可以用算法std::rotate實現這一點:

#include <iostream> 
#include <algorithm> 
#include <string> 

int main() { 
    std::string s = "ABCDEFGHIJ"; 
    std::rotate(s.begin(), s.begin() + 2, s.end()); 
    std::cout << s << std::endl; 
} 

輸出:

CDEFGHIJAB 
+0

我得到'字符串操作符+偏移量超出範圍'錯誤 – krmtb 2014-12-01 22:46:41

+0

@krmtb然後你做了其他錯誤。我發佈的代碼工作。 – juanchopanza 2014-12-16 15:04:02