Hirdetés

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

  • Fire/SOUL/CD
    félisten

    ez a feladat:

    olvass be csupa kisbetűkből álló legfeljebb 20 karakteres sztringet, majd írasd ki 10 karakteren jobbra igazítva az első 8 karaktert. a bemeneten a kisbetűket bármi követheti.

    scanf("%20[a-z]",str);
    printf("\n%10.8s\n",str);

    Ezt írtam rá, de ha a sztring rögtön nagy betűvel kezdődik nem olvas be semmit vagy ha a sztring közepén van egy nagy betű, akkor az utána következőt részt nem olvassa be.

    Ennek így kell működnie, jó ez így?

    Hali!

    Nincs baj azzal amit írsz, csak ugye le kellene ellenőrizni, hogy van-e helyes adat a STR-be.
    Ezt megteheted a strlen() függvénnyel, vagy ahogy a példa mutatja, magával a scanf()-el is.
    A scanf() egy egésszel tér vissza, mely jelzi, hogy hány értéket tudott feldolgozni.
    (ha egyszerre pl 5 adatot kérsz be scanf()-el, akkor 5-tel tér vissza, ha minden oké volt)
    Jelen esetben 1-gyel fog visszatérni, ha a bevitt szöveg megfelel a scanf()-ben megadott szűrésnek.

    #include <stdio.h>
    #include <stdlib.h>

    int main()
    {
    char str[256];

    printf("Kérem a szöveget: ");
    if (scanf("%20[a-z]",str)!=1) {
    printf("Hibás adatbevitel");
    return -1;
    }
    printf(str);
    return 0;
    }

    Fire.

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