Я написал эту функцию для рекурсивного изменения строки:
ex-reverse. cpp
string reverse(string s, int n) {
if (s.empty() == true)
return s;
int len = s.length();
if (n <= len / 2) {
return s;
}
swap(s[len - n], s[n - 1]);
reverse(s, n - 1);
}
ex-main. cpp
void testReverse(string s) {
string rev = reverse(s, s.length() - 1);
cout << s << " | " << rev << endl;
}
int main() {
string words[] = {"", "a", "aa", "ab", "aba", "abc",
"abccba", "abcdba", "abcdea", "abcdef", "abcdefg"};
int length = 11;
cout << "REVERSE" << endl;
for (int i = 0; i < length; i++) {
testReverse(words[i]);
}
return 0;
}
при попытке отладки я получаю это.
Я знаю, что это не что-то сложное, но кто-то может объяснить мне, почему я получаю это и, возможно, что будет хорошее решение справиться с этим?