Hirdetés

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

  • Szőkecica
    csendes tag

    Köszi, próbálkozom. A tömbök kezelését még nem nagyon értem. Ha átmásolom az egyik tombből a másikba az 5 karakternél hosszabb szavakat, akkor az hogyan helyezkedik el a tömbben? Hogy tudom számolni vagy növelni a szavak számát? Úgy tanultam, hogy 1 tömbelem 1 karaktert tartalmaz.
    pl: a tömbök indexei:
    tomb[0] = 'h';
    tomb[1] = 'e';
    tomb[2] = 'l';
    tomb[3] = 'l';
    tomb[4] = 'o';
    tomb[5] = '\0'; szóköz vagy sortérésnél beírja a 0 -a karaktert?

    ....és hogy folytatódik tovább?
    így?
    tomb[6] = 'm';
    tomb[7] = 'i';
    tomb[8] = 'z';
    tomb[9] = 'u';
    tomb[10] = '\0';

    ..és ezt hogy lehet kiíratni? Vagy nem jól gondolom az egészet?

    Szia!
    Kicsit át alakítottam a kódodat, de ez így műxik. Bár én is most kezdtem tanulni nemrég a C-t ;-)

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

    #define SZOHOSSZ 5
    #define HOSSZU 100
    #define MAX_SZO 200

    /* Program ami minden 5 karakternél hosszabb szót átmásol egy másik tömbbe */
    int main(int argc, char** argv) {
    char s[MAX_SZO][HOSSZU], hosszuszo[MAX_SZO][HOSSZU];
    FILE* f = stdin;
    int i, counter, counterHosszu, len;

    counter = 0;
    counterHosszu = 0;

    while (!feof(f) && counter < MAX_SZO) {
    fscanf(f, "%s", s[counter]);
    len = strlen(s[counter]);
    if (len > SZOHOSSZ) {
    strcpy(hosszuszo[counterHosszu], s[counter]);
    counterHosszu++;
    }
    counter++;
    }

    printf("Hosszu szavak: \n");
    for (i = 0; i < counterHosszu; ++i) {
    printf("%s ", hosszuszo);
    }
    printf("\n");
    return 0;
    }

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