C语言(数据结构)字符串的模式匹配程序求改错!~~!!~

发布网友 发布时间:2022-04-25 03:17

我来回答

1个回答

热心网友 时间:2023-10-22 21:26

//你把字符串和int搞混淆了,char "6"并不是int 6

#include"stdio.h"
#include"stdlib.h"
#include"string.h"
#define MAXSTRLEN 256
#define MAXSTRSIZE 256
#define TRUE 1
#define FALSE 0
#define ERROR 0
#define OVERFLOW -2
typedef int Status;
typedef char SString[MAXSTRLEN+1];
SString s;
// 在主串S的第POS个字符之后,寻找模式T的匹配位置
int Index( SString S, SString T, int pos ) {
// printf("%c\n",S[0]);

int len = strlen(S)-1;
int length=strlen(T)-1;
int i,j;
i = pos ;
j = 1;
while ( i<=len&&j<=length) {
if ( S[i] == T[j] ) {
++i;
++j;
}
else {
i = i -j + 2;
j = 1;
}
}
if ( j > length)
return i-length; // T在S中的匹配起始位置
else
return 0;
}
void main(){
SString s="6family",t="2am";
int x=0;
x=Index(s,t,1);
printf("%d",x); //2
getchar();
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com