comparison os9/mc09/string.txt @ 99:92ed427b7f7d

add micro-c by mohta
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 27 Dec 2018 11:01:16 +0900
parents
children
comparison
equal deleted inserted replaced
98:ba0af2b8836b 99:92ed427b7f7d
1
2 strcat(s,t)
3 char *s,*t;
4 { while (*s) ++s;
5 strcpy(s,t);
6 }
7
8 strcmp(s,t)
9 char *s,*t;
10 { for (; *s == *t; ++s,++t) if (!*s) break;
11 return (*s - *t);
12 }
13
14 strcpy(s,t)
15 char *s,*t;
16 { while (*s++ = *t++);
17 }
18
19 char *gets(s,n)
20 char *s;
21 int n;
22 { return fgets(s,n,stdin);
23 }
24
25 puts(s)
26 char *s;
27 { return fputs(s,stdout);
28 }
29
30 char *fgets(s,n,f)
31 char *s,*f;
32 int n;
33 {char c,*t;
34 t = s;
35 while (--n > 0)
36 { if ((c = getc(f)) == EOF) break;
37 if ((*s++ = c) == '\n') break;
38 }
39 *s = '\0';
40 return ((c == EOF && s == t) ? NULL : s);
41
42 }
43
44 fputs(s,f)
45 char *s,*f;
46 { while (*s) putc(*s++,f);
47 }
48
49 match(p,s)
50 char *p,*s;
51 { switch (*p)
52 {case '*':
53 if (!*(p+1)) return 1;
54 while (!match(p+1,s)) if (!*s++) return 0;
55 return 1;
56 case '?':
57 return (*s ? match(p+1,s+1) : 0);
58 case '\0':
59 return (!*s);
60 default:
61 if (*p == *s) return match(p+1,s+1);
62 return 0;
63 }
64 }