Frage

I want to check if string b is suffix of string a. I have tried this so far:

    char a[20], b[20];
    char *p;
    gets(a);
    gets(b);

    p = strstr(a,b);
    while(p != NULL)
    {
        if(p + strlen(b) == '\0')
            break;
        p = strstr(p+1, b);
    }

I have opened the debugger and have seen that when the program reaches this line:

if(p + strlen(b) == '\0')

It never validates to true because p + strlen(b) isn't \0 but just \.

How can I add \0 at the end of what p is pointing to?

War es hilfreich?

Lösung

You need to derfernce the pointer that you are computing:

Either

if(*(p + strlen(b)) == '\0')

or

if(p[strlen(b)] == '\0')

should do it.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top