1204 寻找子串位置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1204 寻找子串位置相关的知识,希望对你有一定的参考价值。

题目描述 Description

给出字符串a和字符串b,保证b是a的一个子串,请你输出b在a中第一次出现的位置。

输入描述 Input Description

仅一行包含两个字符串a和b

输出描述 Output Description

仅一行一个整数

样例输入 Sample Input

abcd bc

样例输出 Sample Output

2

数据范围及提示 Data Size & Hint

字符串的长度均不超过100

思路:把两个字符串分别用两个字符数组存储,长度定义为101.在数组a中查找与数组b第一个字符相同的位置,然后根据数组b的长度进行比较,如果都相同的话,说明这就是b在a中的第一个位置。

代码:

#include<stdio.h>
#include<string.h>
int main()
{
char a[101],b[101];
int i,j,len1,len2,index=0;
scanf("%s %s",a,b);
len1=strlen(a);
len2=strlen(b);
for(i=0;i<len1;i++)
{
if(a[i]==b[0])
{
for(j=1;j<len2;j++)
{
if(b[j]!=a[i+j])//这里b[j]!=a[i+j]的意思是在a中找到与b字符串首字符相同的情况下进行后续比较,不相同就不是子串的首位置
{
break;
}
}
if(j==len2)
{
index=i+1;
break;
}
}
}
printf("%d\n",index);
return 0;
}

以上是关于1204 寻找子串位置的主要内容,如果未能解决你的问题,请参考以下文章

寻找子串位置 codevs 1204

codevs 1204 寻找子串位置

CODEVS1204寻找子串位置

[codevs 1204]寻找子串位置

CODEVS 1204 寻找子串位置 题解

codevs1204 寻找子串位置