Keresés

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

  • xors

    senior tag

    válasz Headless #4127 üzenetére

    a char[32], az ugyanúgy egy char* mutató, csak foglalva van hozzá 32db hely a memóriában.
    A méret igazából csalóka mert lehet röviebb is mint a lefoglalt, stringek esetén az utolsó karakter utáni lezáró nulla ('\0') jelzi a végét, a strcmp is ezt használja.
    A hiba arra utal, hogy valamiért a strcmp ki van kapcsolva, esetleg próbáld meg az

    #include <cstring>
    std::strcmp(egyik, masik)

    ha így sem megy, akkor kell írni egy összehasonlító függvényt, az nem egy nagy cucc

    int myStrCmp (const char *s1, const char *s2) {
    const unsigned char *p1 = (const unsigned char *)s1;
    const unsigned char *p2 = (const unsigned char *)s2;

    while (*p1 != '\0') {
    if (*p2 == '\0') return 1;
    if (*p2 > *p1) return -1;
    if (*p1 > *p2) return 1;

    p1++;
    p2++;
    }

    if (*p2 != '\0') return -1;

    return 0;
    }

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