1 /* $Id: H:/drh/idioms/book/RCS/str.doc,v 1.10 1996/06/26 23:02:01 drh Exp $ */
2 #ifndef STR_INCLUDED
3 #define STR_INCLUDED
4 #include <stdarg.h>
5 extern char *Str_sub(const char *s, int i, int j);
6 extern char *Str_dup(const char *s, int i, int j, int n);
7 extern char *Str_cat(const char *s1, int i1, int j1,
8 	const char *s2, int i2, int j2);
9 extern char *Str_catv   (const char *s, ...);
10 extern char *Str_reverse(const char *s, int i, int j);
11 extern char *Str_map    (const char *s, int i, int j,
12 	const char *from, const char *to);
13 extern int Str_pos(const char *s, int i);
14 extern int Str_len(const char *s, int i, int j);
15 extern int Str_cmp(const char *s1, int i1, int j1,
16 	const char *s2, int i2, int j2);
17 extern int Str_chr  (const char *s, int i, int j, int c);
18 extern int Str_rchr (const char *s, int i, int j, int c);
19 extern int Str_upto (const char *s, int i, int j,
20 	const char *set);
21 extern int Str_rupto(const char *s, int i, int j,
22 	const char *set);
23 extern int Str_find (const char *s, int i, int j,
24 	const char *str);
25 extern int Str_rfind(const char *s, int i, int j,
26 	const char *str);
27 extern int Str_any   (const char *s, int i,
28 	const char *set);
29 extern int Str_many  (const char *s, int i, int j,
30 	const char *set);
31 extern int Str_rmany (const char *s, int i, int j,
32 	const char *set);
33 extern int Str_match (const char *s, int i, int j,
34 	const char *str);
35 extern int Str_rmatch(const char *s, int i, int j,
36 	const char *str);
37 extern void Str_fmt(int code, va_list *app,
38 	int put(int c, void *cl), void *cl,
39 	unsigned char flags[], int width, int precision);
40 #undef T
41 #endif
42