(1) If your string is really a record of a sort, with space-separated fields, and each field is either no-white-space, or if it has whitespace, is double-quoted, AND if the number of fields is FIXED, I would suggest you use Pcre (or Str) and write a regexp with capture groups (the parentheses). That’ll get you whichever field you wish.
(2) If the above is true, except that the # of fields is unbounded, then you’ll probably need to write something that iterates down the string to the field of interest. You can do that with Pcre again, since you can do a match from a starting-position.
This will require that you carefully specify the syntax of fields. So for instance, if the double-quoted field can itself contain escaped double-quotes, you’ll need to make sure your regex accounts for that.
If you’re working on a lot of problems like this, I think learning how to use regular expressions is going to be really, really valuable. And this will be true regardless of which language you choose: indeed, in perl/python/ruby/etc, you’ll need them even moreso than in Oaml.
Hope this helps.