Írtam egy C programot, ami az ékezetes betűket (á, é, ő stb. ) ASCII karakterekkel helyettesíti. Miért nem működik?
Ha tudtok erre egyszerűbb megoldást (akármit, ez nem házi vagy hasonló, tényleg szükségem lenne egy ilyesmi dologra) szívesen veszem. :)
A kód: [link]
(Azért C-ben próbáltam, mert csak ezt a nyelvet ismerem.)
ascii kóddal írd be a cserét,
pl.
else if (c=='ü') c='u';
helyett
else if (c==99) c=88;
A 99 és a 88 találomra írt ascii kód, majd te kikeresgéled őket :)
Rosszul van zárójelezve a while. Belülről kifelé:
1. Beolvas egy karaktert //getc(f)
2. Megnézi, hogy EOF-e //getc(f)!=EOF
3. A visszakapott "boolean" értéket, ami egy int C-ben, 1 vagy 0 összehasonlítja a c char cáltozó értékével //c==(getc(f)!=EOF)
4. Ezt a típuskeverés miatt is értelmetlen újabb "boolean" értéket fogod aztán a karakterekkel összehasonlítgatni. Természetesen egyik karakter sem lesz 1 vagy 0 még int-re konvertálva sem, tehát nem történik semmi. A c-nek pedig értéke sincs egész idő alatt, mivel sose kap értéket, a tartalma teljesen véletlenszerű.
A zárójelezés még mindig nem jó, az tuti. A c=(getc(f)) felesleges, talán a c elé akartad az elejét tenni. Illetve biztos...
Ha ez megvan, akkor elvileg a c változóban már kéne, hogy cserélgesse a betűket. Utána azt valami fájlba bele is kéne írni, hiszen anélkül egyszerűen elveszik, amikor újabb értéket kap, illetve amikor kilép a program, és felszabadul a memória.
A char valóban nem garantáltan 8 bit, sőt, pont ez a c lényege, hogy nincs megmondva.
De itt most ezen felesleges vitázni, elvétve találsz olyan gépet szerintem, ahol nem 8, és különben is kikötheted, hogy a programod csak azon megy. (szerintem a kollofgyuti 26 is elhasalna egy gépen, ahol 3 bit a char, érthető módon)
@kérdező: van egyszerűbb, pl bármilyen online php interpreterbe beírod az alábbi kódot, és meg is vagy:
<?php
function ekezettelenit($miben) {
$mit = array('á','é','í','ó','ö','ő','ú','ü','ű');
$mire = array('a','e','i','o','o','o','u','u','u');
return str_replace($mit, $mire, $miben);
}
echo ekezettelenit("aóüglfééwglóüefwé");
?>
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, 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!