所以通常我应该采取一个字符串的几个第一个字符,并把它们放在这个字符串的末尾。为了简单起见,让我们说 - 前两个字符。我试过这样的事情:字符串擦除附加
char a = mystring.at(0);
char b = mystring.at(1);
mystring.erase(0,1);
mystring.append(a);
mystring.append(b);
这当然给出了从字符到字符串的转换错误。但是,我不知道如何去做,还有什么其他功能可以使用。有任何想法吗?
所以通常我应该采取一个字符串的几个第一个字符,并把它们放在这个字符串的末尾。为了简单起见,让我们说 - 前两个字符。我试过这样的事情:字符串擦除附加
char a = mystring.at(0);
char b = mystring.at(1);
mystring.erase(0,1);
mystring.append(a);
mystring.append(b);
这当然给出了从字符到字符串的转换错误。但是,我不知道如何去做,还有什么其他功能可以使用。有任何想法吗?
您可以用算法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
我得到'字符串操作符+偏移量超出范围'错误 – krmtb 2014-12-01 22:46:41
@krmtb然后你做了其他错误。我发布的代码工作。 – juanchopanza 2014-12-16 15:04:02
什么是MyString的类型?它是一个std ::字符串? – 2014-12-01 19:17:04