Hirdetés

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

  • don_peter
    senior tag

    Pont tegnap próbáltam ki az alábbi kis szösszenetet, ami válasz a kérdésedre is:

    #include <stdlib.h>
    #include <intrin.h>

    int main(void) {
    unsigned char *test = (unsigned char*)malloc(100);
    __stosb(test, 0, 100);
    free(test);
    return 0;
    }

    X86 és X64 architektúrákra.

    Köszi, de mikrokontrollerbe használom így azt hiszem vagy is azt gondolom, hogy nem működne ez ebben a formában.
    Főként talán azért mert nem emlékszem, hogy a C18-as könyvtárban lenne ilyen "intrin.h" állomány.

    Egyébként ha működne miért lenne ez jobb mint az előző?
    A tömbökben amiket törlök memset()-el rövid életűek és csak az interfészen bevitt karaktereket tárolják majd ha végeztem a 14 adat bekérésével kimentem memóriába a tömb adatait és utána rögtön törlöm is.

    Tényleg ha már itt tartok:
    Hogy tudom ellenőrizni a tömb tartalmát hogy abban karaktert vagy számot írtam?
    Mutatok egy példát:

    unsigned char teszt[4] = {'1','2','3','\0'};
    //ellenőrzés pedig
    if(atoi(teszt)>0 & atoi(teszt)<255){
    printf("Csak szám\n");
    }else{
    printf("Nem csak szám\n");
    }

    //Másik változat
    unsigned char teszt[4] = {'1','1','A','\0'};
    //ellenőrzés pedig
    if(atoi(teszt)>0 & atoi(teszt)<255){
    printf("Csak szám\n");
    }else{
    printf("Nem csak szám\n");
    }

    Eredménye:
    1. Csak szám - ez helyesen értékelődik ki
    2. Csak szám - ez hibásan értékelődik ki mivel tartalmaz egy betűt is

    Tegnap próbálkoztam vele és pl: ha betűvel kezdődik a tömb akkor helyesen értékelődik ki, de ha az elején szám van és a végére betűt írok akkor hibás a kiértékelődés.
    Hogyan tudom megvizsgálni a tömböt, hogy abban csak számok van?
    Köszi előre is..

    ui: tömb bejárásnál eszembe jutott, hogy talán elemnkénti vizsgálattal pl:

    if(tomb[i] != 'A - Z' & tomb[i] != 'a - z') //helyes

    Vagy valami ilyesmi...

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