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