Kezdőlap › Fórumok › Programozás › C programozás
- This topic has 351 hozzászólás, 49 résztvevő, and was last updated 15 years, 7 months telt el by
valaki456.
-
SzerzőBejegyzés
-
2006-05-15-16:29 #2016306
hát, a ctype.h headerben van egy toupper() [szerk: na, olvasni se tudok, nagybetûsítünk, persze] függvény, ez a 3. pontra jó, meg van egy isalpha(), ez a 2.-ra jó, az elsõre valszeg magadnak kell megoldást találni, de az is egyszerû, kell egy fv, amiben van egy switch, ami végignézi hogy a bemenõ karakter valamely ékezetes betû-e és ha az, akkor visszaadja ékezet nélküli verzióban. Aztán a szöveget karakterenként beolvasni, átnyomni a 3 fv-n és kész is.
2006-05-15-17:06 #2016307🙂
2006-05-15-17:12 #2016308szati wrote:🙂2006-05-15-17:15 #2016309#include
#include
#include
#includechar toenglish(int c) //egy magyar karaktert angollá alakít
{
if(!strcmp(„ö”, &c)){
c = ‘o’;
}if(!strcmp(„õ”, &c)){
c = ‘o’;
}if(!strcmp(„[code]#include
#include
#include
#includechar toenglish(int c) //egy magyar karaktert angollá alakít
{
if(!strcmp(„ö”, &c)){
c = ‘o’;
}if(!strcmp(„õ”, &c)){
c = ‘o’;
}if(!strcmp(„
2006-05-15-17:17 #2016310Akkor marad az egyszerû megoldás: egyesével a karaktereket egy switch-el ékezetmentesíted, majd mondjuk ugyanígy egy switch-el nagybetût csinálsz belõle (angol abc->25 elágazás). Kicsit ronda megoldás, de ha más nincs, ez is megteszi.
Alternatív lehetõség 1: gondolom van c-ben is valami Pos eljárás (visszaadja, hogy egy adott stringben egy másik szerepel-e és ha igen, hol szerepel elõször). Csinálsz egy stringet a kisbetûs angol sbc-bõl, még egyet a nagybetûsbõl, és ha az adott karakter nincs benne egyikben sem-> ki kell törölni, ha a kisbetûsben van benne, akkor a nagybetûs azon poziciójában levõ karakterére cseréled, ha a nagybetûsben van, akkor hagyod.
Alt. 2: veszel egy kódtáblát, és ha a karakter benne van a kisbetû tartományban, akkor levonsz a kódjából annyit, hogy a nagybetûs megfelelõje legyen, ha a nagybetûsben van benne, akkor hagyod, ha egyikben sem, akkor törlöd.Persze számos hasonló megoldást ki lehet még találni, és nem is tart olyan sokáig megírni ezeket. Sok sikert az éretségihez:)
(Ez éppen az õszi feladat volt nem? Asszem éppen ezt kellet csinálnom, csak én pascalban toltam:)
2006-05-15-17:29 #2016311a 25ös eltolás mûkszik ASCII-nél de egyépkent nem nagyon
UTF8-nál semmiképp nemAmi még szebbé teszi a dolgot az az hogy intbe kell beolvasni a karaktereket mert char ba nem férnek el az UTF8 kódolás miatt
Igen október-novemberi vizsgaidõszakban volt.
2006-05-15-17:40 #2016312Igaz, UTF8-at nem ismerem, de szvsz a string-bõl kikeresõs módszer azzal is mülködik.
Az UTF-8-ról úgy tudom, úgy mülködik mint az ascii az elsõ 128 jelig, tehát addig megegyezik a karakterkészlete. A speciális karaktereket pedig több bájton tárolja.2006-05-15-17:44 #2016313„UTF8-nál semmiképp nem”
Az utf-ben az angol karakterek ugyanazok, a nem angol karakterek pedig több, mint 8 bitesek. Innentõl eleve különleges elbánást kívánnak. (glibbel egyébként át lehet konvertálni az utf-et, vagy utf-be, stringstream használatával)
Az ékezetes betûk maradnak switch-el… mert arra nem igazán tudok megoldás. A nagybetûs dologra, meg van könyvtári függvény. (Különben nem kizárt, hogy az ékezetesre is van függvény…)
(Külön inttel vacakolás, meg… eleve, hogy finoman szóljak, nem elegáns.)2006-05-15-18:05 #2016314A nagybetûre van könyvtári függvény a switch-et meg megpróbálom
2006-05-15-18:13 #2016315int toenglish2(int c){
switch (c) {
case ‘ö’: c = ‘o’; break;
case ‘[code]int toenglish2(int c){switch (c) {
case ‘ö’: c = ‘o’; break;
case ‘ -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz