#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");
}
可以帮我解释一下这些语句的作用嘛
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
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,然后输出
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报