Hirdetés

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

  • kovisoft
    őstag

    Sziasztok, kis segítséget kérnék.
    Elkezdtem csak úgy érdeklődés szinten c-t tanulni mert érdekel. Az elején vagyok nagyon, gyakorlásképpen csináltam egy kis kódot:

    #include <stdio.h>
    #include <string.h>
    int main ()
    {
    const char name[20];
    const char restrictions[5] = "c";
    printf("Enter name: ");
    scanf("%s", name);

    if (strstr(name, restrictions) != NULL)
    {
    printf("Not a valid name!\n");
    } else
    printf("Name: %s\n", name);

    return 0;
    }

    Bekér egy nevet és megadott karakter esetén kiírja, hogy az nem megfelelő.Ezt szeretném tovább bővíteni úgy, hogy több nem megengedett karakter legyen. Úgy gondoltam ezt talán tömbbel lehet szóval a
    const char restrictions[5] = "a" sort átírtam így const char restrictions[5] = {'a', 'b', 'c'}
    na így viszont már nem igazán akar működni. Valaki tud elvi iránymutatást adni, hogy ez miért nem jó? Tömbbel már nem működik igy az strstr? Köszi

    Azért nem működik így, mert az strstr() egy összefüggő rész-stringet keres meg az adott stringben, te pedig azt szeretnéd, hogy a megadott karaktereket külön-külön nézze meg, hogy benne vannak-e valahol a stringben, nem feltétlenül összefüggően és nem feltétlenül ugyanabban a sorrendben. Pl. ha "abc"-t keresel, azt az strstr() megtalálja az "aabcc"-ben, de nem találja meg az "aabbcc"-ben, mert ez utóbbinak az "abc" nem rész-stringje.

    Azt kell csinálnod, hogy egy ciklussal végigmész a restrictions[] karakterein, és mindegyikre megnézed, hogy benne van-e a name-ben az adott karakter.

    Szerk: lassú voltam :)

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