-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy path7-4.c
45 lines (37 loc) · 774 Bytes
/
7-4.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <stdio.h>
#include <ctype.h>
#include <stdarg.h>
#define MAX_STRING_SIZE 100
void mini_scanf(char *format_string, ...) {
va_list arg_ptr;
char *ptr;
int *int_val;
char *char_val;
char *string_val;
va_start(arg_ptr, format_string);
for (ptr = format_string; *ptr; ptr++) {
if (*ptr != '%')
continue;
switch (*(++ptr)) {
case 'd':
int_val = va_arg(arg_ptr, int *);
scanf("%d", int_val);
break;
case 'c':
char_val = va_arg(arg_ptr, char *);
scanf("%c", char_val);
break;
case 's':
for (string_val = va_arg(arg_ptr, char *); *string_val; string_val++)
scanf("%c", string_val);
break;
default:
break;
}
}
}
int main() {
char str[MAX_STRING_SIZE];
scanf("%s", &str[0]);
printf("%s", str);
}