编写判断子串的自定义函数模块int substr(char *s1,char *s2),如果s1是s2的子串,
答案:1 悬赏:30 手机版
解决时间 2021-11-23 17:10
- 提问者网友:欲劫无渡
- 2021-11-23 10:47
编写判断子串的自定义函数模块int substr(char *s1,char *s2),如果s1是s2的子串,
最佳答案
- 五星知识达人网友:旧脸谱
- 2021-11-23 11:44
#include
#include
#include
int substr(char *s1,char *s2)
{
int len1=strlen(s1);
int len2=strlen(s2);
int i,k,t=0;
if(len1>len2)
return 0;
for(k=0;k
{
for(i=0;i
if(s1[i]==s2[i])
t++;
if(t==len1)
return 1;
s2++;
}
return 0;
}
void main()
{
char *str1=NULL,*str2=NULL;
char y;
do
{
str1 = (char *)calloc(50, sizeof(char));
str2 = (char *)calloc(50, sizeof(char));
cout<<"请输入两个字符串:"<
cin>>str1;
cin>>str2;
if(substr(str1,str2)==1)
cout<
else
cout<
cout<<"如需继续判断请按Y或者y:";
cin>>y;
free(str1);
free(str2);
}while(y=='Y'||y=='y');
}
时间复杂度不是最优化的,我记得数据库里有经典的KMP算法。你可以参考。
#include
#include
int substr(char *s1,char *s2)
{
int len1=strlen(s1);
int len2=strlen(s2);
int i,k,t=0;
if(len1>len2)
return 0;
for(k=0;k
{
for(i=0;i
if(s1[i]==s2[i])
t++;
if(t==len1)
return 1;
s2++;
}
return 0;
}
void main()
{
char *str1=NULL,*str2=NULL;
char y;
do
{
str1 = (char *)calloc(50, sizeof(char));
str2 = (char *)calloc(50, sizeof(char));
cout<<"请输入两个字符串:"<
cin>>str1;
cin>>str2;
if(substr(str1,str2)==1)
cout<
else
cout<
cout<<"如需继续判断请按Y或者y:";
cin>>y;
free(str1);
free(str2);
}while(y=='Y'||y=='y');
}
时间复杂度不是最优化的,我记得数据库里有经典的KMP算法。你可以参考。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯