Cześć,
rozwiązuje zadanie na HackerRank i chcę m.in. zamienić wszystkie wielkie litery występujące w stringu na małe. Chcę do tego wykorzystać funkcję toLower, która zwróci do main-a string zawierający tylko małe litery. Dla przykładu: jeżeli ktoś wpisze "MaMa", to funkcja toLower zamieni string na "mama".
Problem polega na tym, że moja funkcja zamienia te litery wewnątrz samej siebie, ale nie chce zwrócić tego wyniku do main-a (nadpisać oryginalnego stringa).
Słyszałem o referencji, na przykładach z int-ami to się sprawdza. Próbowałem analogicznie zastosować tę wiedzę w przypadku ze stringiem, ale nie wychodzi mi.
Wiem, że mógłbym ominąć ten problem, ale nie o to przecież chodzi. Chcę się czegoś nauczyć.
Proszę o pomoc w tym, by funkcja toLower przekazywała "swoją robotę" do main-a. (:
#include <iostream>
#include <string>
using namespace std;
string toLower(string s)
{
for (int i=0; i<s.length(); i++)
{
if ((int)s[i]<=90&&(int)s[i]>=65) s[i]=(int)s[i]+32;
}
return s;
}
int main()
{
string alphabet="abcdefghijklmnopqrstuvwxyz";
string s; cin>>s;
toLower(s);
cout<<s<<endl;
return 0;
}