Záměna znaků string – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Záměna znaků string – C / C++ – Fórum – Programujte.comZáměna znaků string – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Kenvelo+2
Super člen
19. 6. 2014   #1
-
0
-

Zdravím pokoušel sem se vytvořit záměnu znaků a poté znovu je zaměnit za správné. (něco jako šifrovací a dešifrovací program") 

string s;
string d;

replace(s.begin(), s.end(), 'a', 'c');
replace(s.begin(), s.end(), 'b', 'a');
replace(s.begin(), s.end(), 'c', 'b');

cout << s;

d = s;

replace(d.begin(), d.end(), 'c', 'a');
replace(d.begin(), d.end(), 'a', 'b');
replace(d.begin(), d.end(), 'b', 'c');

cout << d;

ale problém spočívá v tom že př : znak  A se změní 3x a takže string d; vypíše totální blbost.

Otázka zní jak tomu zabránit nebo pokud je lepší způsob zápisu budu za něj velice rád, Díky ;)

Nahlásit jako SPAM
IP: 89.177.219.–
Díky bohu, že počítače vymysleli muži. Kdyby to byly ženy, tak binární soustavu reprezentují jedničky, nuly a "možná"
KIIV
~ Moderátor
+43
God of flame
19. 6. 2014   #2
-
0
-

no problem je hlavne v tom, ze neco zmenis, pak na to zmenene aplikujes neco dalsiho

proste c->a  a zachvili menis  a na b ... a pak pro zavrseni  i to b zmenis na c

Nahlásit jako SPAM
IP: 94.113.95.–
Program vždy dělá to co naprogramujete, ne to co chcete...
19. 6. 2014   #3
-
+1
-
Zajímavé

Projdi si to step by step:

1. všechna a nahradíš písmenem c
2. všechna b nahradíš písmenem a
3. všechna c nahradíš písmenem b, včetně těch, co jsou náhradou za a

asi by bylo lepší procházet řetězec jen jednou znak po znaku a podle "šifrovací tabulky" přiřazovat znaky nové. Šifrovací tabulka by mohla být pole obsahující nový znak a index by byla hodnota znaku podle ASCII

hu

Nahlásit jako SPAM
IP: 195.178.67.–
KIIV
~ Moderátor
+43
God of flame
19. 6. 2014   #4
-
+1
-
Zajímavé
Nahlásit jako SPAM
IP: 94.113.95.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Kenvelo+2
Super člen
19. 6. 2014   #5
-
0
-

#3 hlucheucho #2 KIIV

ano to vím .. na to sem též přišel... ale otázka zní jak zabránit přepisování ;)

Nahlásit jako SPAM
IP: 89.177.219.–
Díky bohu, že počítače vymysleli muži. Kdyby to byly ženy, tak binární soustavu reprezentují jedničky, nuly a "možná"
Kenvelo+2
Super člen
19. 6. 2014   #6
-
0
-

#4 KIIV
Díky ;) 

Nahlásit jako SPAM
IP: 89.177.219.–
Díky bohu, že počítače vymysleli muži. Kdyby to byly ženy, tak binární soustavu reprezentují jedničky, nuly a "možná"
19. 6. 2014   #7
-
+1
-
Zajímavé

#5 Kenvelo
viz výše. Cyklem for procházím znak po znaku řetězcem a tvořím řetězec nový nebo přepisuji starý.

hu

Nahlásit jako SPAM
IP: 195.178.67.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 10 hostů

Podobná vlákna

String to hex ebo Byte()"string" — založil Roman Uherek

Záměna proměnných — založil Anonymní uživatel

Zámena ASCII znakov — založil nevedko01

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý