与春风 2021-08-10 15:23 采纳率: 63.6%
浏览 37
已结题

可以帮我解释一下这些语句的作用嘛


#include<stdio.h>
#include<string.h>
int main()
{
char str[512]="8686542101000";
char substr[]="42101";
char *p=str,*q=substr;
int flag=0;
for(;*(p+strlen(substr)-1);p++)
{printf("%d\n",*(p+strlen(substr)-1));
for(q=substr;*p==*q&&*q;p++,q++);
if(!*q)
{
flag=1;
break;
}
}
if(flag==1) puts("accord");
else puts("not accord");
}
  • 写回答

4条回答 默认 最新

  • Legend_LXT 2021-08-10 15:38
    关注
    for( ; *(p+strlen(substr)-1);  p++) {
        printf("%d\n", *(p + strlen(substr) - 1));
        for (q = substr; *p == *q && *q; p++, q++);
        if(!*q)
        {
            flag = 1;
            break;
        }
    }
    

    这个for循环是判断如果

    *(p+strlen(substr)-1)
    

    这个指针为真,那么先输出这个东西,然后再进行一个for循环,里面进行一个for循环,里面有一个if判断,判断如果*q不为真,那么flag = 1,然后输出

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 8月18日
  • 已采纳回答 8月10日
  • 创建了问题 8月10日