C?????? - PowerPoint PPT Presentation

1 / 29
About This Presentation
Title:

C??????

Description:

12 – PowerPoint PPT presentation

Number of Views:33
Avg rating:3.0/5.0
Slides: 30
Provided by: moc82
Category:
Tags: boyer | moore

less

Transcript and Presenter's Notes

Title: C??????


1
????????????
  • ?12?
  • ?????

2
C??????
  • ?????
  • ???????????????
  • ????????
  • ???????
  • ??????2???????????
  • ???????????????
  • ???????????????
  • ?????????????

3
C??????
  • ???????

???????STRING
??S (0x53)
0
1
0
1
0
0
1
1
??T (0x54)
0
1
0
1
0
1
0
0
S
T
R
I
N
G
\0
??R (0x52)
0
1
0
1
0
0
1
0
??I (0x49)
0
1
0
0
1
0
0
1
??N (0x5E)
0
1
0
0
1
1
1
0
??G (0x47)
0
1
0
0
0
1
1
1
????\0 (0)
0
0
0
0
0
0
0
0
4
C??????
  • ??????????
  • ???
  • char ???????????????
  • ?????
  • ??????????????????????????
  • ?????????????
  • ????????????????
  • ???
  • ???????????????????????????????????????????

5
C??????
  • ????????
  • ????char?????????????????????
  • ???????????
  • ??????????????????
  • ????????????????????

??
S
T
R
I
N
G
\0
???
??
6
C??????
  • ???????
  • ????????????
  • ???????????

char st10 S, T, R, I, N, G,
\0 char st10 STRING / ??????
/ char st10 st S, T, R, I, N,
G, \0 / ??? / st STRING / ??? /
7
C??????
  • ??????????
  • ?????????????????????
  • ?????????????????????

pt
char pt 1234
1
2
3
4
\0
????
???????
??????????1000?????????????pt??1000???
8
????????
  • ??????
  • ????????????????????
  • ??????????????????
  • ????????????????
  • ??????????????????
  • ????????????????????
  • ????????????
  • ??????????????????????
  • ????????????

9
????????
  • ??????

int str_len(const char s) int len 0
while (slen) len return (len)
10
????????
  • ??????

int str_len(const char s) int len 0
while (s) len return (len)
11
????????
  • ??????

int str_len(const char s) char p s
while (s) s return (s - p)
12
????????
  • ???????????
  • ????????????????
  • ????????????????
  • ??????????????????

13
????????
  • ???????????

int str_chr(const char s, int c) int i
for (i 0 si ! c i) if (si
\0) return (-1) return (i)
14
????????
  • ???????????

char str_chr(const char s, int c) for (
s ! c s) if (s \0)
return (NULL) return ((char ) s)
15
????????
  • ??????
  • 2??????????????
  • ???????????????????
  • ????????????????
  • ????????????????????????
  • ??????????????????

16
????????
  • ??????

int str_cmp(const char s1, const char s2)
while (s1 s2) if (s1 \0)
return (0) s1 s2
return ((unsigned char) s1 - (unsigned char)
s2))
17
?????
  • ???????
  • ????????????????????
  • ???????????
  • ????????????

18
?????
  • ?????
  • ??????
  • ??????????????????
  • ??????????????1???????????
  • ?????????????????

19
?????
  • ?????

A
B
A
B
C
D
E
F
G
H
A
\0
A
B
A
C
B
A
B
C
\0
A
B
C
\0
20
?????
  • ?????

pt
A
B
A
B
C
D
E
F
G
H
A
\0
A
B
A
C
B
A
B
C
\0
A
B
C
\0
pp
21
?????
  • KMP?
  • Knuth-Morris-Pratt?
  • ????????????????????? ??????
  • ?????????????????????????????????
  • ?????????????

22
?????
  • KMP?

A
B
A
B
C
X
A
C
C
A
D
\0
Z
E
F
Z
A
B
C
A
B
X
A
B
C
\0
A
B
D
A
B
C
A
B
D
23
?????
  • KMP???????????

A
B
C
A
B
D
\0
A
B
C
A
B
D
0
0
0
1
2
0
24
?????
  • KMP?

pt
A
B
A
B
C
X
A
C
C
A
D
\0
Z
E
F
Z
A
B
C
A
B
X
A
B
C
\0
A
B
D
A
B
C
A
B
D
pp
A
B
C
A
B
D
0
0
0
1
2
0
2
25
?????
  • Boyer-Moore?
  • BM?
  • ?????????????
  • ????????????????????????????????

26
?????
  • Boyer-Moore?

A
B
A
B
C
Z
A
C
C
A
D
\0
X
E
B
C
A
A
B
C
A
A
27
?????
  • Boyer-Moore?????????????
  • ?????????????????????????????????????????
  • ????????n???
  • ????????????????n
  • ???????????????n - k - 1
  • k?????????????
  • ????????????????

28
?????
  • Boyer-Moore?????????????

0
1
2
3
A
B
A
C
A
B
C
D
E
F
G
H
I
J
K
L
M
1
2
4
4
4
4
4
4
4
4
4
4
4
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
4
4
4
4
4
4
4
4
4
4
4
4
4
29
?????
  • Boyer-Moore?

pt
A
B
A
B
C
Z
A
C
C
A
D
\0
X
E
B
C
A
A
B
C
A
pp
A
B
AB??
1
2
4
4
1
Write a Comment
User Comments (0)
About PowerShow.com