Hogy kell az ASCII kódot?
A Caesar-titkositás során a karakterek ASCII kódjaihoz egy egész számot adunk, így kapunk egy új karaktert. Az ABC-t körbe-körbe kezeli, tehát a Z után újra az A jön.
1. Készítsünk el a Caesar-titkosításhoz egy objektumot. Két metódusa van, egy kodol és egy dekodol. Az alap ABC az angol ABC kisbetűi. Az egyéb karaktereket (pl. szóköz, számjegyek) az egyszerűség kedvéért nem változtatjuk meg.
2. Fejlesszük tovább úgy a programot, hogy az angol ABC nagybetűire is működjön!





ascii: [link]
1.
kódolás:
var caesar_szam;
var karakter_be;
var karakter_be_ascii;
var karakter_kiir;
var karakter_kiir_ascii;
karakter_be = Karakter_bekerese_fuggveny();
karakter_be_ascii = Karakter_ascii_kodjat_lekerdezo_fuggveny(karakter_be);
if ((karakter_be_ascii >= 97) és (karakter_be_ascii <= 122)){
karakter_kiir_ascii = karakter_be_ascii + caesar_szam;
if (karakter_kiir_ascii > 122) karakter_kiir_ascii -= 26;
if (karakter_kiir_ascii < 97) karakter_kiir_ascii += 26;
}
karakter_kiir = Karakter_ascii_kodjat_normal_karakterre_alakito_fuggveny(karakter_kiir_ascii);
Kiiras_fuggveny(karakter_kiir);
dekódolás:
ugyanez, csak karakter_be és karakter_kiir + többiek felcserélve, és kivonás a caesar számnál
2. ugyanezek mint fent, csak 97 és 122 mellett 65 és 90 értékekre is kell egy ellenőrzés





Köszi a válaszokat. Tegnap este keresgéltem még és találtam 1 egyszerűbb módszert, és gondoltam leírom, hogy hátha érdekel benneteket. A c++ a számból betűre való váltást úgy kezeli, hogy az ASCII kódját írja ki, az-az ha én azt írom neki:int b=65;
char a;
a=b;
cout<<a;
}
akkor ő ezt nagy A betűnek fogja tekinteni, így a kimenet is A lesz. Továbbá ha betűhöz hozzáadok egy számot akkor minden betűt az ASCII kódjának megfelelően eltol a számmal.ez után már csak végigmegyek a tömbön és kicserélgetem a betűket. Nem tudom hogy ez jobb megoldás-e, de nekem kezdő programozóként könnyebbnek tűnik:)





"A c++ a számból betűre való váltást úgy kezeli, hogy az ASCII kódját írja ki"
Ez kicsit zavaros. A betűk is egész típusú számok, és az adott platform kódolásában (a kódolás mindig egész számhoz rendel egy karaktert) tárolják a betűket. Tehát az ASCII kódolás szerinti 'A' értéke 65. Kiírásnál a cout tudja, hogy most nem számot, hanem karaktert küldesz be neki (a << operátor megfelelő verziója hívódik meg), ezért nem számként írja ki.





előző azt szeretné mondani, hogy ezt:
int b=65;
char a;
a=b;
cout<<a;
megteheted így is:
char a(65);
cout << a;
vagy így is:
cout << (char)65;
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!