From e0b9da43b6311aa4413d030b27c6cdab000aeafd Mon Sep 17 00:00:00 2001 From: sinanmohd Date: Sat, 13 May 2023 11:44:19 +0530 Subject: 7.4: initial commit --- 7.4/mscanf.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 7.4/mscanf.c (limited to '7.4/mscanf.c') diff --git a/7.4/mscanf.c b/7.4/mscanf.c new file mode 100644 index 0000000..8f09f35 --- /dev/null +++ b/7.4/mscanf.c @@ -0,0 +1,34 @@ +#include +#include +#include +#include "mscanf.h" + +#define MAXFMT 100 + +void mscanf(char *fmt, ...) +{ + va_list ap; + int i; + char lfmt[MAXFMT]; + + va_start(ap, fmt); + for (; *fmt; fmt++) { + if (isblank(*fmt)) { + continue; + } else if (*fmt != '%') { + if (*fmt == getchar()) + continue; + else + break; + } + + i = 0; + while (i < MAXFMT && !isalpha(lfmt[i++] = *fmt++)) + ; + lfmt[i] = '\0'; + scanf(lfmt, va_arg(ap, void *)); + + fmt--; + } + va_end(ap); +} -- cgit v1.2.3