저는 초보자이며 C++에 대한 책을 읽었으며 함수에 관한 장을 다룹니다. 나는 문자열을 뒤집어서 그것의 복사본을 main으로 반환하고 출력하기를 썼다.C++ 함수에서 문자열 반환
문자열 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;
, 반대 기능을 대신 전체 문자열의 첫 번째 입력 된 단어의 반대를 반환 나는 다음과 같은 코드를 변경할 때 문제가 발생합니다. 내가 어디로 잘못 가고 있는지 알 수 없다.
마지막으로, 입력 변수의 복사본을 변경하지 않고 참조를 사용하여이 작업을 수행하는보다 우아한 방법이 있습니까?
역 기능에 버그가 있습니다. 'for' 조건으로'i> 0'을 사용해야합니다. 마지막 반복에서'i == 0'과'j == input.length()'결과는'reverse [input.length()] = input [-1]'이며, 둘 다 범위를 벗어납니다. – IronMensan