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

  • Sk8erPeter

    nagyúr

    válasz Nyiscsák #822 üzenetére

    Ilyen feladat itt megtalálható megoldva: InfoC (BME)

    (Ez itt sima C.)

    #include <stdio.h>
    #include <string.h>

    void megfordit(char t[]);
    void spacetelenit(char t[]);

    int main(){
    char hello[]="indul a gorog aludni";
    char masolat[50];

    spacetelenit(hello);
    strcpy(masolat, hello);
    megfordit(masolat);
    if (strcmp(hello, masolat)==0)
    printf("Ez egy palindrom!\n");
    else
    printf("Nem palindrom.\n");
    }

    //Szóközöket ne vegyük figyelembe
    void spacetelenit(char t[])
    {
    int honnan, hova;

    hova=0;
    /* végigmegyünk az összes karakteren */
    /* "honnan" mindig nő, "hova" csak néha */
    for (honnan=0; t[honnan]!=0; honnan++)
    /* és ami nem space, másoljuk */
    if (t[honnan]!=' ') { /* NEM 32, hanem ' '! */
    t[hova]=t[honnan];
    hova++;
    }
    t[hova]=0; /* a papagáj egyből: "lezáró NUL!" */
    }

    //String megfordítása
    void megfordit(char t[])
    {
    int hossz;
    int i;

    hossz=strlen(t);
    /* csak a feléig forgatunk, különben visszafordítanánk */
    for (i=0; i<hossz/2; ++i) {
    char temp;

    temp=t[i]; /* három lépéses csere */
    t[i]=t[hossz-1-i];
    t[hossz-1-i]=temp;
    }
    /* lezáró NUL? van, mert maradt a helyén. */
    }

    Sk8erPeter

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