Я новичок, и я изучаю книгу по C ++, и у меня есть глава о функциях. Я написал один, чтобы перевернуть строку, вернуть ее копию в main и вывести ее.
string reverseInput (строковый ввод);
int main()
{
string input="Test string";
//cin>>input;
cout<<reverseInput(input);
return 0;
}
string reverseInput(string input)
{
string reverse=input;
int count=input.length();
for(int i=input.length(), j=0; i>=0; i--, j++){
reverse[j]=input[i-1];
}
return reverse;
}
Выше, кажется, работает. Проблема возникает, когда я изменяю следующий код:
string input="Test string";
до:
string input;
cin>>input;
После этого изменения функция reverse возвращает только обратную часть первого введенного слова вместо всей строки. Я не могу понять, где я иду не так.
Наконец, есть ли более элегантный способ сделать это, используя ссылки, не создавая копию ввода, чтобы сама переменная ввода была изменена?