Keresés

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

  • Dinter

    addikt

    válasz buherton #5898 üzenetére

    Az a környezet, ahol le kell futtatni a programot az, csak így nem tudom letesztelni akkor.

    A program a következő: kapom a sorokat standard inputról, amiről el kell dönteni, hogy illeszkedik-e vagy nem a regex mintára. Majd fájl vége jelnél kiiírni az összes/jó sort 8-as számrendszerben. Ez így működik elvileg?

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

    int convertDecimalToOctal(int decimalNumber)
    {
    int octalNumber = 0, i = 1;

    while (decimalNumber != 0)
    {
    octalNumber += (decimalNumber % 8) * i;
    decimalNumber /= 8;
    i *= 10;
    }

    return octalNumber;
    }

    bool reg_matches(const char *str, const char *pattern)
    {
    regex_t re;
    int ret;

    if (regcomp(&re, pattern, REG_EXTENDED) != 0)
    return false;

    ret = regexec(&re, str, (size_t) 0, NULL, 0);
    regfree(&re);

    if (ret == 0)
    return true;

    return false;
    }

    int main()
    {
    char sor[1000];
    int sorok=0;
    int jo=0;

    const char* pattern="^[^#]_*(0x)?[0-9]*V6.+[A-Z]*.*mmese(B|a)";

    while(scanf("%s[^\n]",&sor)!=EOF){
    sorok++;

    if(reg_matches(sor,pattern)) jo++;
    }

    int jo8=convertDecimalToOctal(jo);
    int sorok8=convertDecimalToOctal(sorok);
    printf("%d/%d",sorok8/jo8);
    return(0);

    }

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