判别一个字符串是否是另一个字符串的子串,如果是则输出第一次出现的位置(下标)。
输入格式:
第一行输入母字符串A,第二行输入字符串B。
输出格式:
如果B是A的子字符串,输出B在A中的位置(字符数组的下标);否者输出NOT。
输入样例:=0-
在这里给出一组输入。例如:
I like learning English.
like
输出样例:
在这里给出相应的输出。例如:
2
#include<stdio.h>
#include<string.h>
int judge(char a[],int sza,char b[],int szb)
{
int i,j;
for(j = 0;b[j] != '\0';j++)
{
for(i = 0;a[i] != '\0';i++)
{
//将b字符串中的字符依次与a中字符比较,若相等则进行b中下一个字符的比较
if(a[i] == b[j])
{
if(j < szb -1)
break;
else if(j == szb - 1)//如果b中每一个字符都能找到,则此时i == szb,返回第一次字符出现的下标
{
return i - szb + 1;
break;
}//else if
}//if
if(i == sza - 1 && j < szb - 1)
return -1;
}//for
}//for
}//judge
#define MX 100
int main()
{
int judge(char a[],int sza,char b[],int szb);//函数声明
char a[MX],b[MX];
int i;
gets(a);
gets(b);
int sza = strlen(a);
int szb = strlen(b);
int ret = judge(a,sza,b,szb);
if(ret == -1)
printf("NOT");
else
printf("%d",ret);
return 0;
}