#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#pragma warning(disable:4996)
int skip[256];
void table(char *);
void main()
{
char text[] = "This is pen.That is a pencil";
char *p, *key="pen";
int i;
table(key);
p=search(text,key);
이후 서치함수로 같은부분 찾아줌~
}
void table(char *key)
{
int k, n;
n = strlen(key);
for (k = 0; k <= 255; k++)
skip[k] = n;
for (k = 0; k < n - 1; k++) <----- 이부분
skip[key[k]] = n-1-k; <----- 이부분
}
책에 설명되있는 코드중 일부거든요?
table 함수에 처음 for로 skip[0~255] 숫자를 3으로 채워준후에
skip[key[k]] 이부분이 뭔지 모르겠어요. key[k]면은 pen이라는 문자열에 가르키는 포인터를 3개 배열로 key[0]=p key[1]=e key[2]=n
이렇게 나타낼수 있는데 skip[p] skip[e] skip[n] 이건 안되지 않나여?
되면 어떻게 되는건지설명좀 해줘용 ㅠㅠ
댓글 0