我想检查字符串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?
答案 0 :(得分:1)
你需要修改你正在计算的指针:
无论
if(*(p + strlen(b)) == '\0')
或
if(p[strlen(b)] == '\0')
应该这样做。