2014-12-01 72 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