bf算法的自己思考

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define max 100

typedef struct 
{
char *p;
int length;    
}sstring;

void getsstring(sstring &s)//这个输入函数的书写针对一个函数时还可以。不可以两个函数 ,针对字符数组出错了,不知道为什么 
//z这种用for循环语句来输入不知道哪里出错,看一下一下子输入; 
//利用定义一个变量利用strcpy函数的方法失败了,失败原因从char到char*的转变无效; 
{
    int i;
    int n;
    char cc;
    s.p=(char *)malloc(sizeof(char)*100);
    if(!s.p)
    {
    printf("分配空间失败\n");
    exit (0);
}
//    printf("请输入字符数组的长度\n");
//    scanf("%d",&s.length);    
//    printf("请输入%d个字符\n",s.length);
//    for(i=0;i<s.length;i++)
//    scanf("%c",&s.p[i]);

//printf("请输入字符数组s的值");//这种方法是错误的 
// scanf("%s",&cc);
//strcpy(s.p,cc);

printf("请输入字符数组的值");//要求必须length已知,这种方法虽然输入可以,但是长度未知 
gets(s.p);
  }  
  
  
  
int index(sstring s,sstring t,int pos)//要求必须length已知 
{
    int i,j;
    i=0;j=0;
    t.length=strlen(t.p);
    s.length=strlen(s.p);
    while(i<=s.length-1&&j<=t.length-1)//并且 
    {
    if(s.p[i]==t.p[j])
    {
        ++i;++j;
    }
    else
    {
    i=i-j+2;j=0;}
    
    }
    if(j>t.length-1)
    {
    return i-t.length+1;}
    else 
    {
    return -1;}

  }  
  
  
int main()
{
    int n;
    int jj;
    int pos;
    sstring c;
    sstring t;
    pos=0;
    printf("请输入c的字符\n");
    getsstring(c);
    printf("\n");
    printf("请输入t的字符\n");
    getsstring(t);
    jj=index(c,t,pos);
    printf("这是bf算法得到的值\n");
    printf("%d",jj);
    return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

正在变秃的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值