永发信息网

编写判断子串的自定义函数模块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算法。你可以参考。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯