comparison mc09/string.txt @ 160:1a30cd6e5973

move mc09 to top
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 05 Feb 2019 09:03:07 +0900
parents os9/mc09/string.txt@92ed427b7f7d
children
comparison
equal deleted inserted replaced
159:1d574c5b3383 160:1a30cd6e5973
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 }