- Csíkszélességben verné az Exynos 2600 a Snapdragon 8 Elite 2-t
- iPhone topik
- Fotók, videók mobillal
- Redmi Note 9 Pro [joyeuse]
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Magisk
- Samsung Galaxy Watch6 Classic - tekerd!
- Samsung Galaxy A53 5G - kevesebbet többért
- One mobilszolgáltatások
- 65 órányi zenét ígér az Audio-Technica új TWS fülese
Új hozzászólás Aktív témák
-
llaszlo
veterán
válasz
alapz@j #5725 üzenetére
Ok, de honnét tudom, hogy milyen bytesorozat kell nekem? Ilyet még nem csináltam korábban.
Kiolvasok 16 bitet/2 byte-ot és azt ellenőrzöm/hasonlítom?
Viszont ha a sima betűk meg csak 1 byte-ot foglalnak.
Esetleg kiolvasok 1 byte-ot, ellenőrzöm, hogyha van egyezés, akkor meg van a betű, hogyha nincs, akkor hozzá olvasom a következő byteot is és így hasonlítok? -
llaszlo
veterán
válasz
dabadab #5721 üzenetére
Köszi
A wchar-ral már találkoztam valahol.
Mi a helyzet ezzel?
Nem pont ez az ami nekem kéne? Csak még nem értettem meg a működését és, hogy melyik kellene nekem innét. Mert itt van olyan amikor az ékezetes karaktert ékezet nélkülire kódolja. Hogyha jól értek mindent.
[link] -
llaszlo
veterán
Ezt a -1-es dolgot nem értem.
Én azt logikáztam ki, hogy kiolvasom a bevitt karaktersor adott elemét 'x'. Aztán összehasonlítom a fent elkészített tömb elemeivel. Ekkor ugye mindegy, hogy kis vagy nagybetű. Mindegy, hogy A, a, Á, á stb van.
Ha egyezés van, akkor a másik tömb (ami a számokat tartalmazza) adott elemével növelem a változó értékét.
Amikor elfogytak a karakterek, akkor pedig kész, kilép.Viszont az ékezetes karakterek több helyet foglalnak a tömbben. Most ez a gondom.
Az is megfelel, hogyha az á-t átalakítja a-ra, vagy az Ű-t U-ra, és csak az alap angol karakterek maradnak.
Azzal is tudok tovább dolgozni.Most így néz ki a két tömb
char betu []="AaÁáBbCcDdEeÉéFfGgHhIiJjKkLlMmNnOoÓóÖöŐőPpQqRrSsTtUuÚúÜüŰűVvWwXxYyZz";
unsigned short szam []= {1,1,1,1,2,2,11,11,4,4,5,5,5,5,17,17,3,3,8,8,10,10,10,10,11,11,12,12,13,13,14,14,16,16,16,16,16,16,16,16,17,17,19,19,20,20,21,21,9,9,6,6,6,6,6,6,6,6,6,6,6,6,15,15,10,10,7,7}; -
llaszlo
veterán
A következő ötletem támadt. Két tömböt hozok létre az egyik tartalmazza a karaktereket kis- és nagybetűkkel a másik pedig az ezekhez tartozó számokat.
Viszont
Miért foglalnak két helyet egy tömbben az ékezetes karakterek?int x=0;
unsigned char betu []="AaÁáBbCcDdEeÉéFfGgHhIiJjKkLlMmNnOoÓóÖöŐőPpQqRrSsTtUuÚúÜüŰűVvWwXxYyZz";Kiíratáskor, viszont ez fogad
while (betu[x])
{
printf ("x=%d %c ", x, betu [x]);
x++;
}x=0 A x=1 a x=2 � x=3 � x=4 � x=5 � x=6 B x=7 b x=8 C x=9 c x=10 D x=11 d x=12 E x=13 e x=14 � x=15 � x=16 � x=17 � x=18 F x=19 f x=20 G x=21 g x=22 H x=23 h x=24 I x=25 i x=26 J x=27 j x=28 K x=29 k x=30 L x=31 l x=32 M x=33 m x=34 N x=35 n x=36 O x=37 o x=38 � x=39 � x=40 � x=41 � x=42 � x=43 � x=44 � x=45 � x=46 � x=47 � x=48 � x=49 � x=50 P x=51 p x=52 Q x=53 q x=54 R x=55 r x=56 S x=57 s x=58 T x=59 t x=60 U x=61 u x=62 � x=63 � x=64 � x=65 � x=66 � x=67 � x=68 � x=69 � x=70 � x=71 � x=72 � x=73 � x=74 V x=75 v x=76 W x=77 w x=78 X x=79 x x=80 Y x=81 y x=82 Z x=83 z
Az ékezetes karakterek helyén ?-ek vannak.
Így látszólag jó, viszont az x értéke mutatja, hogy mégsem egy 69-es tömböt, hanem egy 85-ös tömböt foglal le a \0-val együtt.
while (betu[x])
{
printf ("x=%d %c ", x, betu [x]);
x++;
}printf ("%d", x);
AaÁáBbCcDdEeÉéFfGgHhIiJjKkLlMmNnOoÓóÖöŐőPpQqRrSsTtUuÚúÜüŰűVvWwXxYyZz84
Az ékezetes karaktereket 16 biten tárolná és nem 8-on, a char pedig csak 8-cal dolgozik?
Ez lenne a hiba oka?
Mi lehet a megoldás?Szerk: Visszaolvastam a fórumot is az ékezetes karakterekkel kapcsolatban és láttam, hogy másnál is gondot okoz. Melyik megoldás lenne ebben az esetben a legcélszerűbb?
-
llaszlo
veterán
Köszi. Igaz, a space-t nem vettem figyelembe.
Példa
Dr Kiss József Géza
Ez így jó.
De pl a
Dr. Kiss József Géza-ban a pont karakter már felesleges, vagy bármi más pl: , ; számok stb.A táblázatra fejből nem emlékszem de valahogy így néz ki
A, Á = 1
B = 5
C = 7
D = 11
stbA bevitt szövegből pedig karakterenként kiolvasom az elemeket és ha A van, akkor ugye 1-el növelve az értéket ha B, akkor 5-tel stb. A space és minden egyéb, viszont 0 kell, hogy legyen, vagy nem is ad hozzá semmit sem. Mert ha eleve nincs egyezés a táblázat elemeivel, akkor mehet tovább a következő karakterre.
Megnéztem az isalpha függvényt. Ha jól értem a működését, akkor azzal ellenőrizni tudom, hogy betű vagy más karakter van-e. Ha igen, akkor mehet a táblázattal való összehasonlítás, hogyha nem, akkor beolvassa a következő karaktert. Ha így oldom meg, akkor az isspace nem is kell. Viszont a toupper-t le kell futtatnom előtte.
Azt hiszem, vissza kell mennem az alapokhoz, olyan régen írtam már programot. Viszont jó kis hobbi ez nekem
buherton: Ezt nagyon jó, hogy leírtad. Az alap cézár kódolás feladat amikor egy szöveget a betű eltolással titkosítottunk. Hú de rég volt 99.
-
llaszlo
veterán
Hali
Ezt, hogy a legegyszerűbb megoldani?
Van egy karakterlánc több karakterből, amit a user ad meg. Ebben csakis betűk szerepelhetnek. Ha más karakter is van, akkor hibaüzenet.
A betűknek számértéket kell adni egy meghatározott táblázat szerint, és ezeket a számokat összeadni. A space-t ne vegye figyelembe.Az elgondolásom.
fgets-szel beolvastatom a szöveget, majd karakterenként kiolvasom. Aztán ezt a karaktert összehasonlítom a táblázat karaktereivel és a hozzárendelt számmal növelem egy változó értékét, amíg el nem fogynak a karakterek.Nagyon régen csináltam ilyet emlékszem rá, hogy a szövegből szám lett. De már nem emlékszem arra, hogy hogyan.
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Trollok komolyan
- AMD GPU-k jövője - amit tudni vélünk
- Luck Dragon: Asszociációs játék. :)
- Csíkszélességben verné az Exynos 2600 a Snapdragon 8 Elite 2-t
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Egyre csak fejlődik az AI, emberek tízezreit rúgja majd ki a BT
- Autós topik
- iPhone topik
- Gurulunk, WAZE?!
- Egérpad topik
- További aktív témák...
- Eladó Konfig Ryzen 7 9700X 32GB DDR5 1TB SSD RX6900XT 16GB!
- Eladó Gamer PC i7 14700, RTX 5070, 32 GB 6000mhz RAM, Vizhűtés, 850W 80+ Táp, 2 év Garanciával
- Google Pixel 9 Pro 5G 16/256GB Szürke Színben Bontatlan 12 Hó Garanciával
- iPhone XS Max 64GB LEÍRÁST OLVASS!
- Eladó: Bowers & Wilkins PX7S2e - garanciás
- AKCIÓ! Gigabyte H610M i5 12400F 32GB DDR4 512GB SSD Intel ARC A770 16GB Rampage SHIVA 650W
- BESZÁMÍTÁS! ASUS ROG STRIX Z390-E GAMING alaplap garanciával hibátlan működéssel
- Országosan a legjobb BANKMENTES részletfizetési konstrukció! Lenovo ThinkPad X13 Gen 5
- BESZÁMÍTÁS! MSI Crosshair 17 HX Gamer notebook - i7 14700HX 64GB RAM 1TB SSD RTX 4060 8GB WIN11
- Samsung Galaxy Z Fold5 / 512 GB / 12 GB RAM / 1év Garanciával / Gyári Független
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged