Hirdetés

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

  • Bobrooney
    senior tag

    Sziasztok!

    Kezdő vagyok C programozásban és tanulgatjuk, de még bonyolult nekem.
    Ezelőtt nem foglalkoztam programkészítéssel.
    Kell írni egy beadandót, melyben karaktereket kérünk be pontosvesszővel elválasztva és amikor EOF akkor ki kell íratni a karaktereket oly módon, hogy minden pontosvessző utáni karakterláncot új sorba kell kezdeni, és elé kiírni, hogy hanyadik sorba gépeltük be a bekéréskor.

    Példában kb így néz ki

    bekérem
    aaaa;vvvv;bbbb;
    aaa;fff;ddd

    eredmény:

    1.sor:
    aaaa
    vvvv
    bbbb
    2.sor:
    aaa
    fff
    ddd

    Valahogy így kezdtem el megpróbálni megoldani a feladatot:

    #include <stdio.h>

    int main(int argc, char *argv[]) {

    char c, sor [200];
    int i=0;

    while (( c = getchar () ) !=EOF && c!= "\n"){
    sor[i]=c;
    i++;
    }
    printf(" Sor: %S\n" , sor);
    putchar(c);
    }

    Eddig ennyire jutottam, de itt is már az a baj, hogy ha eof akkor csak kisírja hogy Sor: és semmi sorszám, semmi karakter nincs mögötte.

    Előre is köszönöm bármi nemű segítségnyújtásotokat.

    #include <stdio.h>

    int main(int argc, char *argv[]) {

    char c, sor [128];
    int i=0;

    while (( c = getchar () ) !=EOF && c!= '\n'){
    sor[i]=c;
    i++;
    }
    i = 0;
    while(sor[i] != '\0')
    {
    if(sor[i] == ';')
    {
    putchar(10);
    }
    else
    {
    putchar(sor[i]);
    }
    i++;
    }
    }

    A bekérésbe belejavítottam
    c!= "\n" <- ez így nem igazán jó (1 char tipusba string-et akarsz rakni ebben az esetben '\' és 'n' karaktert)
    c!= '\n' <- így már jó lesz
    remélem valami ilyesmire gondoltál.

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