Skip to main content
6 of 6
deleted 51 characters in body
jdt
  • 4.5k
  • 1
  • 14
  • 18

C (gcc), 103 bytes

char*b[99],**o,*l;f(s,n)char*s;{for(o=b;*s++;l=*s-34?l:++n%4?s+1:(*o++=strndup(l,s-l)));*o=0;return b;}

Try it online!

Usage:

f(input, 2) returns an array with the keys

f(input, 0) returns an array with the values

C (clang), 67 bytes

*l;f(*s,n){for(;*s++;l=*s-34?l:++n%4?s+1:printf("%.*ls\n",s-l,l));}

Writes the output to stdout instead of returning arrays.

Try it online!

jdt
  • 4.5k
  • 1
  • 14
  • 18