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

Zamian znaków

Object Storage Arubacloud
0 głosów
178 wizyt
pytanie zadane 14 grudnia 2017 w C i C++ przez Sic Dyskutant (8,510 p.)

Witam postanowiłem napisać program, który ma za pomocą funkcji zamieniał znaki. Odnalazłem funkcję

replace()

jednak nie mogę dotrzeć jak z niej korzystać. Czy mógłby ktoś objaśnić mi działanie tej funkcji a jeżeli są inne sposoby szybkiej zamiany znaków to po prostu podpowiedzieć ?

1 odpowiedź

+1 głos
odpowiedź 14 grudnia 2017 przez criss Mędrzec (172,590 p.)
wybrane 14 grudnia 2017 przez Sic
 
Najlepsza

Tzn. zmieniał znaki w stringu? W taki sposób:

std::string s = "ababab";
std::replace(s.begin(), s.end(), 'a', 'b');  // "bbbbbb"
komentarz 14 grudnia 2017 przez Sic Dyskutant (8,510 p.)
Jeszcze przed chwilą myślałem, że coś rozumiem.
komentarz 14 grudnia 2017 przez criss Mędrzec (172,590 p.)
? :D A czego nie rozumiesz?
komentarz 14 grudnia 2017 przez Sic Dyskutant (8,510 p.)
funkcja zamienia pierwszy i ostatni znak? później podajemy jakie to mają być znaki?

 

Przypuśćmy, że mamy sytuacje: wprowadzamy tekst i chcemy go w pewien sposób zabezpieczyć szyfrem i w tym momencie czy jest możliwość odwołania się do zmiennej (lub dwóch) i zmiany każdego ze znaków na inne ?
komentarz 15 grudnia 2017 przez criss Mędrzec (172,590 p.)
Jak to pierwszy i ostatni? Czytałeś w ogóle dokumentacje tej funkcji? Zamienia wszystkie wystąpienia znaku podanego w 3 arg na znak podany w 4 arg.

Co do drugiego pytania - jasne, czemu nie, ale używanie do tego std::replace może być trochę problematyczne i mało optymalne.
komentarz 15 grudnia 2017 przez Sic Dyskutant (8,510 p.)
Na tej zasadzie okej. Czytałem jeszcze nie miałem okazji spotkać funkcji z 4 arg.

To co mogłoby się bardziej przydać, aby wykonać to zadanie.
komentarz 15 grudnia 2017 przez criss Mędrzec (172,590 p.)

jeszcze nie miałem okazji spotkać funkcji z 4 arg.

Może być i z dwudziostoma i nie będzie to się niczym różnić.

 To co mogłoby się bardziej przydać, aby wykonać to zadanie.

Napisać samemu. Pętle i np. jakiś switch, żeby w jednej pętli móc podmieniać wszystkie znaki jakie chcesz.

std::string s = "abcd";

for (char & c : s)
{
   switch (c)
   {
      case 'a': c = 'e'; break;
      case 'b': c = 'f'; break;
      case 'c': c = 'g'; break;
      case 'd': c = 'h'; break;
   }
} // s == "efgh" 
komentarz 15 grudnia 2017 przez Sic Dyskutant (8,510 p.)
Dzięki bardzo wykorzystam ten sposób, a takie krótkie pytanie co do warunku(?) pętli for. Co ono oznacza ? Albo jakie jest działanie w tym momencie ':'.
komentarz 15 grudnia 2017 przez criss Mędrzec (172,590 p.)
Wygoogluj "c++ range-based for loop". Generalnie taki zapis służy do "przelecenia" po wszystkich elementach kontenera.
komentarz 15 grudnia 2017 przez Sic Dyskutant (8,510 p.)
Dziękuję bardzo za pomoc. Sam bym sobie nie poradził.

Podobne pytania

0 głosów
1 odpowiedź 194 wizyt
pytanie zadane 14 października 2020 w C i C++ przez MiKasProgramista Początkujący (350 p.)
–3 głosów
1 odpowiedź 266 wizyt
pytanie zadane 9 września 2018 w PHP przez XezolPL Obywatel (1,530 p.)
0 głosów
1 odpowiedź 1,697 wizyt
pytanie zadane 22 lipca 2018 w Python przez El Lirón Obywatel (1,320 p.)

92,556 zapytań

141,404 odpowiedzi

319,561 komentarzy

61,942 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...