diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mc09/string.txt	Tue Feb 05 09:03:07 2019 +0900
@@ -0,0 +1,64 @@
+
+strcat(s,t)
+char *s,*t;
+{       while (*s) ++s;
+        strcpy(s,t);
+}
+
+strcmp(s,t)
+char *s,*t;
+{       for (; *s == *t; ++s,++t) if (!*s) break;
+        return (*s - *t);
+}
+
+strcpy(s,t)
+char *s,*t;
+{       while (*s++ = *t++);
+}
+
+char *gets(s,n)
+char *s;
+int n;
+{       return fgets(s,n,stdin);
+}
+
+puts(s)
+char *s;
+{       return fputs(s,stdout);
+}
+
+char *fgets(s,n,f)
+char *s,*f;
+int n;
+{char c,*t;
+        t = s;
+        while (--n > 0)
+        {       if ((c = getc(f)) == EOF) break;
+                if ((*s++ = c) == '\n') break;
+        }
+        *s = '\0';
+        return ((c == EOF && s == t) ? NULL : s);
+
+}
+
+fputs(s,f)
+char *s,*f;
+{       while (*s) putc(*s++,f);
+}
+
+match(p,s)
+char *p,*s;
+{       switch (*p)
+        {case '*':
+                if (!*(p+1)) return 1;
+                while (!match(p+1,s)) if (!*s++) return 0;
+                return 1;
+         case '?':
+                return (*s ? match(p+1,s+1) : 0);
+         case '\0':
+                return (!*s);
+         default:
+                if (*p == *s) return match(p+1,s+1);
+                return 0;
+        }
+}