Hirdetés
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Fűzzük össze a szavakat :)
- mefistofeles: Az elhízás nem akaratgyengeség!
- Luck Dragon: Asszociációs játék. :)
- Geri Bátyó: Agglegénykonyha 14 – Kések, késélezés
- sziku69: Szólánc.
- GoodSpeed: Windows 11 PRO FPP (Full Packaged Product) - Retail, Box, dobozos
- Elektromos rásegítésű kerékpárok
- gban: Ingyen kellene, de tegnapra
- ldave: New Game Blitz - 2026
Ú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
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Autós topik
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Mibe tegyem a megtakarításaimat?
- Apple MacBook
- Akciófigyelő: Jelentős kedvezményekkel veheted meg a Xiaomi 17-eket
- AMD Navi Radeon™ RX 9xxx sorozat
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Autós topik látogatók beszélgetős, offolós topikja
- Fejhallgató erősítő és DAC topik
- World of Tanks - MMO
- További aktív témák...
- Lenovo X1 Carbon 13,3" - i5 7300U, 8GB RAM, SSD, jó akku - számla, 6 hó gar
- Lenovo ThinkPad T590 15,6" - i5 8265U, 8-16GB RAM, SSD, jó akku, számla, 6 hó gar
- Gamer PC AMD Ryzen 3500X/16GB DDR4 /Nvidia 1650 4 GB/256 GB SSD + 1 TB HDD 6 hó garancia, számlával!
- Eladó 2db Pixel 7 obszidián 128/8
- Apple Watch Series 11 46mm GPS+Cellular , Újszerű, 1 Év Garanciával
- GEN5!!! 14/12GB/s 1TB Gen5x4 NVMe SSD, 1 év gar
- Samsung Galaxy S23 Ultra 8/256GB - Kártyafüggetlen, Fekete - 1 Év Garanciával
- Lenovo T14s Gen 1 i5 10. gen., 16GB RAM, 256-512GB SSD, jó akku, számla, 6 hó gar
- szinteÚJ, dobozos Dell Pro 14 Ultra 7 255U 16GB DDR5 512GB AI PC FHD+ 1 év garancia
- Xiaomi Redmi 15 / 6/128GB / Kártyafüggetlen / 12Hó Garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

