Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ☭ cat /tmp/s.c
- #include <stdio.h>
- int main()
- {
- const char *t[] = {
- "22:33:44.555",
- "33:44.555",
- "44.555",
- };
- size_t i;
- #define SEP "%*1[.:]"
- for (i = 0; i < sizeof(t)/sizeof(*t); i++) {
- int a = 0, b = 0, c = 0, d = 0;
- int n = sscanf(t[i], "%d"SEP"%d"SEP"%d"SEP"%d", &a, &b, &c, &d);
- switch (n) {
- case 4: printf("h=%d m=%d s=%d u=%d\n", a, b, c, d); break;
- case 3: printf(" m=%d s=%d u=%d\n", a, b, c ); break;
- case 2: printf(" s=%d u=%d\n", a, b ); break;
- default: printf("fail: n=%d\n", n); break;
- }
- }
- return 0;
- }
- ☭ gcc -Wall -Wextra /tmp/s.c && ./a.out
- h=22 m=33 s=44 u=555
- m=33 s=44 u=555
- s=44 u=555
- ☭
Add Comment
Please, Sign In to add comment