In general, I like C. Pointers don’t generally bother me all that much, and its really nice to use for a lot of different things. However, its string handling SUCKS (though, printf is nice). It seems like a lot of the string routines in the standard C library are designed to screw you in the most unexpected ways possible.
So recently I’ve been struggling with processing input from a user on the command line, and I was using sscanf to attempt to do really simple string processing, and it simply wasn’t matching the correct things. After much struggling and coming to the realization that I needed to do something similar to regular expressions… I sat down and wrote the following function, and it works quite well for what I want to do.
What it does do:
- Match arbitrary strings using a perl regex, and return the matches to you
What it doesn’t do:
- This is not a drop-in replacement for sscanf: you need to change the format string around and (possibly) your parameters.
- It will not return anything but a string. Thats all you get. Of course, if you format your regex correctly then you can pretty much be guaranteed that strtol/strtod/etc will work…
- Give you any kind of comprehensive error reporting. If you want that, then just use the pcre functions directly
- Cook your meals or do your laundry
This is released under the license contained on http://www.virtualroadside.com/software/, enjoy!