如何在使用指针引用的字符串末尾添加'\ 0'?

时间:2014-02-07 21:44:17

标签: pointers char nul

我想检查字符串b是否是字符串a的后缀。到目前为止我试过这个:

    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);
    }

我打开了调试器,并且在程序到达此行时已经看到了:

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

它永远不会验证为真,因为p + strlen(b)不是\ 0而只是\。

如何在p指向的末尾添加\ 0?

1 个答案:

答案 0 :(得分:1)

你需要修改你正在计算的指针:

无论

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

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

应该这样做。