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 寻找子串位置的主要内容,如果未能解决你的问题,请参考以下文章