Я пытаюсь создать программу, которая переворачивает строку с указателями и функциями в C ++, но до сих пор мой метод возвращает только пустую строку, а не перевернутую.
#include <iostream>
using namespace std;
void invertS(string *str_ptr );
int main()
{
string value {"Hello"};
string *str_ptr {nullptr};
str_ptr = &value;
invertS(str_ptr);
cout << value;
};
void invertS(string *str_ptr) {
string str = *str_ptr;
string temp = "";
int length = str.length();
int j = length - 1;
for (int i = 0; i < length; i++) {
temp[i] = str[j];
j--;
};
*str_ptr = temp;
};
Результатвсегда просто пустая строка. Обратите внимание, что я назначаю строку, на которую ссылается str_ptr, новой строке внутри функции, чтобы я мог использовать .length в строке. Поскольку .length не может использоваться на указателе, насколько я знаю. Если есть лучший способ сделать это, я также хотел бы знать, как это происходит.