Hirdetés

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

  • axioma
    veterán

    Urak, Hölgyek!

    A következő kóddal van bajom:

    //headerbe
    #define MAXTOMBSIZE 32

    //main()
    unsigned int maxmemtomb;
    char meminput[MAXTOMBSIZE] = "Valaminev#60#120#185#225#240#260";
    char memtomb[7];
    int i;
    char ek = '#';
    maxmemtomb = MAXTOMBSIZE;
    for(i=0; i<=maxmemtomb-1; i++){
    if(meminput[i] == ek){
    printf("\n%c", meminput[i+1]);
    //memtomb[i] = meminput[i+1];
    i++;
    }else{
    printf("%c", meminput[i]);
    //memtomb[i] = meminput[i];
    }
    }
    //for(i=0; i<=6; i++){
    //printf("\nAdatok: %s\n", memtomb);
    // }

    A program lényege, hogy a "Valaminev#60#120#185#225#240#260" karakterláncot a # karakternél szétválasszam és a szétválasztott elemeket egy tömbbe töltsem.
    Addig jó a program, hogy kiírja a képernyőre a szétválasztott elemeket egymás alá, de mikor bele akarom tölteni egy tömbbe a szétválasztott elemeket akkor zagyvaságokat ír bele.
    Próbáltam már kismillió formában, de a végén nem lesz jó az eredmény.
    Mit cseszek el folyamatosan?
    Hogy tudnám ezt megoldani?

    A program élesben egy 64KB-os memória 32bájt-ját fogja beolvasni ami hasonlóan vagy pont így fogja tárolni az adatot, a szétválasztott adatok külön-külön lesznek hasznosak.
    De ha nem jó a megközelítésem szívesen veszem a kiokításokat.

    Ha jol ertem, stringek tombjet szeretned a kulonszedett elemekkel, tehat a memtomb az char[][], es a meretvalasztasnal 1-gyel tobb kell mint a leghosszabb elem, bar a Valaminev-nel lazan a 7-t is kifutod... Persze annak az indexet is kovetned kell, hogy mikor melyikbe irsz, es annak is hanyadik elemere (bar eccerubb, ha megjegyzed az utolso elvalasztas helyet, es csak kivonogatsz, de vszinu atlathatatlanabb is egyuttal).
    Masreszt meg amikor # jon az inputban, akkor az aktualis memtomb-elemedet le kell zarni egy 0-val.

    szerk. nem frissitettem, nalam keresztposzt...
    Most nezem, az utolso sor azert kelleni fog neked...

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