Hirdetés

Új hozzászólás Aktív témák

  • pawee
    tag

    miért nem másolod be ide? Aztán eldöntjük, hogy akarunk -e foglalkozni vele vagy nem.

    Előljáróban:

    assemblys trükk - xrate ( translate szlengesen ) asszem a parancs neve. Nyugi, nem assemblys megoldást akarok mondani. A lényeg az, hogy csinálhatnál egy nagy táblázatot, amiben az egyes karakterekhez egy másikat rendelsz. Ezt be a memóriába és utánna már csak a táblázaton kell keresni az adott karakter párját. Ennél gyorsabb, működő megoldást nem fogsz csinálni az tuti!

    Sok sikert!

    mod: mondjuk nem részleteztem a módszer lényegét, de talán nem is kell. Ha érdekel: fontos, hogy minden karakternél futtas egy keresést a táblán és cserélj, ha nem akarnál cserélni az adott helyen akkor a táblában a karakter párja saját maga...... -persze itt nem egy karakter van hanem több, ez nem lehet akadály... : )

    [Szerkesztve]

    include <stdio.h>
    int main()
    {
    //változók felvétele

    char str_in[160], str_out[160];
    int i;

    //file változók felvétele

    FILE *input;
    FILE *output;

    //fileok megnyitása

    input = fopen(''be.txt'',''r'');
    output = fopen(''ki.txt'',''w'');

    //konvertálás

    for (i=0;i <= 80;i++)
    {
    switch (str_in)
    {
    // a program első fele, a síma ékezetest átalakítjuk repülőékezetre
    case ''á'' :
    {
    if (str_in
    == ''Á'')
    {
    str_out = ''A'';
    str_out[i+1] = ''''';
    }
    if (str_in
    == ''á'')
    {
    str_out = ''a'';
    str_out[i+1] = ''''';
    }
    }
    case 'é'||'É' :
    {
    if (str_in
    == ''É'')
    {
    str_out = ''E'';
    str_out[i+1] = ''''';
    }
    if (str_in
    == ''é'')
    {
    str_out = ''e'';
    str_out[i+1] = ''''';
    }
    }
    case 'í'||'Í' :
    {
    if (str_in
    == ''Í'')
    {
    str_out = ''I'';
    str_out[i+1] = ''''';
    }
    if (str_in
    == ''í'')
    {
    str_out = ''i'';
    str_out[i+1] = ''''';
    }
    }
    case 'ö'||'Ö' :
    {
    if (str_in
    == ''Ö'')
    {
    str_out = ''O'';
    str_out[i+1] = '':'';
    }
    if (str_in
    == ''ö'')
    {
    str_out = ''o'';
    str_out[i+1] = '':'';
    }
    }
    case 'ü'||'Ü' :
    {
    if (str_in
    == ''Ü'')
    {
    str_out = ''U'';
    str_out[i+1] = '':'';
    }
    if (str_in
    == ''ü'')
    {
    str_out = ''u'';
    str_out[i+1] = '':'';
    }
    }
    case 'ó'||'Ó' :
    {
    if (str_in
    == ''Ó'')
    {
    str_out = ''O'';
    str_out[i+1] = ''''';
    }
    if (str_in
    == ''ó'')
    {
    str_out = ''o'';
    str_out[i+1] = ''''';
    }
    }
    case 'ő'||'Ő' :
    {
    if (str_in
    == ''Ő'')
    {
    str_out = ''O'';
    str_out[i+1] = '''''';
    }
    if (str_in
    == ''ő'')
    {
    str_out = ''o'';
    str_out[i+1] = '''''';
    }
    }
    case 'ú'||'Ú' :
    {
    if (str_in
    == ''Ú'')
    {
    str_out = ''U'';
    str_out[i+1] = ''''';
    }
    if (str_in
    == ''ú'')
    {
    str_out = ''u'';
    str_out[i+1] = ''''';
    }
    }
    case 'ű'||'Ű' :
    {
    if (str_in
    == ''Ű'')
    {
    str_out = ''U'';
    str_out[i+1] = '''''';
    }
    if (str_in
    == ''ű'')
    {
    str_out = ''u'';
    str_out[i+1] = '''''';
    }
    }
    //A program első második fele még nem írtam meg...
    default:
    {
    str_out
    = str_in;
    }



    }
    }
    fflush(input);
    fflush(output);
    fclose(output);
    }


    még eléggé kezdő vagyok a dologban, de az assembly-s megoldás az tényleg jóóó. értem mit akarsz mondtani vele.
    ha pl egy két dimenziós tömbbel csinálnám meg???az eélső dimenzió az ákezetes betű második meg a percsis változata és ha egyezik akkor behelyettesít, így jó szted?
    csak ezzel is az a baj, hogy Á betű helyett már A' lesz mi már két kari...erre is ki kell találnokm még vmit

Új hozzászólás Aktív témák