m0_61884245 2021-11-16 21:13 采纳率: 50%
浏览 11
已结题

C语言寻找字符串,对代码不太理解

#include<stdio.h>

int main()
{
int i,j;
char a[80],char b[80];
gets(a);
gets(b);
for(i=0;a[i]!='\0';i++)
{
for(j=0;a[j]!='\0';j++)

if(a[i+j]!=b[j])
break;
if(b[j]=='\0')
break;

}
if(a[i]!='\0')
printf("%d",i+1);
return 0;
}

  • 写回答

1条回答 默认 最新

  • CSDN专家-link 2021-11-16 21:19
    关注

    外层循环就是a数组逐个字符作为开头字符与b数组进行比较
    内层循环就是从i开始,逐个字符与b数组进行比较,如果某个字符不想等,则比较结束
    if(b[j] == '\0')表示b字符串已经比较结束,说明找到b串在a串种的位置了,break表示查找结束
    if(a[i] !='\0')表示a串并没有检索到尾部,说明查找过程中找到子串了,否则a会一直找到结束。输出i+1即为b串在a串中出现的位置

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月25日
  • 已采纳回答 11月17日
  • 创建了问题 11月16日