Mercurial > hg > Members > kono > os9 > sbc09
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os9/mc09/string.txt Thu Dec 27 11:01:16 2018 +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; + } +}