数据结构字符串的模式匹配 求子串的个数 帮改错!C语言
答案:1 悬赏:10
解决时间 2021-02-17 20:42
- 提问者网友:棒棒糖
- 2021-02-16 22:54
数据结构字符串的模式匹配 求子串的个数 帮改错!C语言
最佳答案
- 二级知识专家网友:逃夭
- 2021-02-16 23:23
# include
# include
# include
# define MAX_STRLEN 256
typedef struct {
char str[MAX_STRLEN];
int length;
} StringType;
int StringType_Index(StringType s,StringType t,int pos) {
int i,j;
i=pos-1,j=0;
while ((i if (s.str[i]==t.str[j]) {
i++;
j++;
} else {
i=i-j+1;
j=0;
};
}
if (j==t.length) {
printf("匹配成功!");
return i-t.length+1;
} else {
printf("匹配失败!");
return -1;
}
}
int StringType_Count(StringType s, StringType t,int i) {
int j;
i=0;
for(j=1; j<=s.length-t.length;) {
j=StringType_Index(s,t,j);
if(j<0)break;
i++;
j=j+t.length;
}
return i;
}
int main() {
int i;
//char s[MAX_STRLEN],t[MAX_STRLEN];
StringType s,t;
printf ("请输入字符串s:");
scanf("%s",s.str);
s.length=strlen(s.str);
printf ("请输入字符串t:");
scanf("%s",t.str);
t.length=strlen(t.str);
printf("匹配的个数是:%d",StringType_Count(s,t,1));
}
已修改好
# include
# include
# define MAX_STRLEN 256
typedef struct {
char str[MAX_STRLEN];
int length;
} StringType;
int StringType_Index(StringType s,StringType t,int pos) {
int i,j;
i=pos-1,j=0;
while ((i
i++;
j++;
} else {
i=i-j+1;
j=0;
};
}
if (j==t.length) {
printf("匹配成功!");
return i-t.length+1;
} else {
printf("匹配失败!");
return -1;
}
}
int StringType_Count(StringType s, StringType t,int i) {
int j;
i=0;
for(j=1; j<=s.length-t.length;) {
j=StringType_Index(s,t,j);
if(j<0)break;
i++;
j=j+t.length;
}
return i;
}
int main() {
int i;
//char s[MAX_STRLEN],t[MAX_STRLEN];
StringType s,t;
printf ("请输入字符串s:");
scanf("%s",s.str);
s.length=strlen(s.str);
printf ("请输入字符串t:");
scanf("%s",t.str);
t.length=strlen(t.str);
printf("匹配的个数是:%d",StringType_Count(s,t,1));
}
已修改好
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯