• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Funkcja zmieniająca oryginał - string

0 głosów
420 wizyt
pytanie zadane 25 października 2018 w C i C++ przez AOrta Nowicjusz (150 p.)

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;
}

 

2 odpowiedzi

0 głosów
odpowiedź 25 października 2018 przez draghan VIP (106,230 p.)
wybrane 25 października 2018 przez AOrta
 
Najlepsza

Ależ ta funkcja przekazuje wynik swoich działań "do maina". Tylko Ty nie korzystasz z tego, co ona Ci zwraca. Zobacz to:

#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;
    s = toLower(s);
    cout<<s<<endl;
    return 0;
}

 

komentarz 25 października 2018 przez AOrta Nowicjusz (150 p.)
Dziękuję. Ja jak zwykle zakładałem, że problem jest bardziej skomplikowany. (:
0 głosów
odpowiedź 25 października 2018 przez Poczprogramista123 Bywalec (2,900 p.)
REFERENCJA!!!

Podobne pytania

0 głosów
1 odpowiedź 228 wizyt
0 głosów
1 odpowiedź 115 wizyt
0 głosów
1 odpowiedź 185 wizyt
pytanie zadane 7 kwietnia 2019 w C# przez WojMen Początkujący (330 p.)

93,425 zapytań

142,421 odpowiedzi

322,646 komentarzy

62,787 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...