编写算法,查找模式串t在主串s中第一次出现的位置
输入格式:
首先输入主串s,在第二行中输入模式串t,s和t中不包含空格。
输出格式:
对于每组测试,若模式串t在主串s中出现,则输出t在s中的子串位置,否则输出0。
```c
#include<iostream>
#include<string.h>
using namespace std;
#define MAX 255
typedef unsigned char SString[MAX+1];
int Index(SString S,SString T,int pos)
{
int i=pos,j=1;
while(i<=S[0]&&j<=T[0])
{
if(S[i]==T[j])
{
i++;
j++;
}
else
{
i=i-j+2;
j=1;
}
}
if(j>T[0])
return i-T[0];
else
return 0;
}
int main()
{
SString S,T;
cin>>S>>T;
cout<<Index(S,T,1);
return 0;
}
感觉少了定义数组T[0],S[0]为字符串长度而不存储字符的代码,不知道怎么下手。
运行输出错误 求解,最好能附上修改后的代码,学的太浑噩了,听不懂。