Guest User

Untitled

a guest
Jan 4th, 2018
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.81 KB | None | 0 0
  1. ☭ cat /tmp/s.c
  2. #include <stdio.h>
  3.  
  4. int main()
  5. {
  6. const char *t[] = {
  7. "22:33:44.555",
  8. "33:44.555",
  9. "44.555",
  10. };
  11. size_t i;
  12.  
  13. #define SEP "%*1[.:]"
  14.  
  15. for (i = 0; i < sizeof(t)/sizeof(*t); i++) {
  16. int a = 0, b = 0, c = 0, d = 0;
  17. int n = sscanf(t[i], "%d"SEP"%d"SEP"%d"SEP"%d", &a, &b, &c, &d);
  18.  
  19. switch (n) {
  20. case 4: printf("h=%d m=%d s=%d u=%d\n", a, b, c, d); break;
  21. case 3: printf(" m=%d s=%d u=%d\n", a, b, c ); break;
  22. case 2: printf(" s=%d u=%d\n", a, b ); break;
  23. default: printf("fail: n=%d\n", n); break;
  24. }
  25. }
  26.  
  27. return 0;
  28. }
  29.  
  30. ☭ gcc -Wall -Wextra /tmp/s.c && ./a.out
  31. h=22 m=33 s=44 u=555
  32. m=33 s=44 u=555
  33. s=44 u=555
Add Comment
Please, Sign In to add comment