/*
使用指针实现字符串的匹配--C语言的编程之道
*/
#include<stdio.h>
#include<string.h>
int match(char* B,char* A)
{
int i,j,start=0;
int lastB=strlen(B)-1;
int lastA=strlen(A)-1;
int endmatch=lastA;
//就下面的代码重要
for(j=0;endmatch<=lastB;endmatch++,start++)//判断是否是B长于A如果是则做循环判断匹配 用来做B[start]的开头
{
if(B[endmatch]==A[lastA])//判断最后的字符是否相等
for(j=0,i=start;j<lastA&&B[i]==A[j];)//A[]从第一个与B[start]相比
{
j++;
i++;
}
if(j==lastA)//记录j是否走到完,走完则说明完全匹配
{
printf("%d\n",j);
return start+1;
}
}
if(endmatch>lastB)
{
printf("nonono");
return -1;
}
}
void main(){
char s[]="One world one dream ";
char t[]="world";
int *p= match(s,t);
if(p!=-1)
{
printf("Matchable\n");
printf("%d",p);
}
printf("\n");
}
使用指针实现字符串的匹配
最新推荐文章于 2024-08-07 22:56:01 发布