串的初始化问题
#include<stdio.h>
#include<string.h>
#define MAX 10
typedef struct{
char data[MAX];
int length;
}String;
int Pattern(String a,String b)
{
int i=0,j=0;
while(i<a.length-b.length)
{
while(j<b.length&&a.data[i]==b.data[i])
{
i++;
j++;
}
if(j<b.length)
{
i=i-j+1;
j=0;
}
else
return i-j;
}
return -1;
}
void main()
{
int a,i=0;
String p;
String q;
strcpy(p.data,"abcde");
p.length=5;
strcpy(q.data,"cd");
q.length=2;
a=Pattern(p,q);
printf("首次出现的位置是:\n");
printf("%d\n",a);
}
求串q在串p中首次出现的位置,究竟问题出在哪里?求指教!!!谢谢!
[解决办法]
没细看程序,试试:
while(j<b.length&&a.data[i]==b.data[j])
[解决办法]