/^[^\s]+\s([^\s]+)\s/
In PHP,I can use regex to get the substr by $1
,
how should I do it in C?
It's better if can do it without regex,though.
UPDATE
Put simply, how do I get werwerur
out of swerwer werwerur y
(the second)?
I recommend to use strchr() - it is very fast to find characters in strings
#include <string.h> .. char str[] = "swerwer werwerur y"; char *p1 = NULL,*p2 = NULL; p1 = strchr(str,' '); p1++; p2 = strchr(p1,' '); if(p2) *p2 = 0; printf("found: %s\n", p1);
if you have multiple delimiters, you can use strtok_r() or strpbrk() as in example below:
char str[] = "swerwer ., werwerur + y"; const char *dlms = " .,+"; char *p1 = NULL,*p2 = NULL; p1 = strpbrk(str,dlms); while(strchr(dlms,*p1)) p1++; p2 = strpbrk(p1,dlms); if(p2) *p2 = 0; printf("found: %s\n", p1);
(should cleanup code: in case if strpbrk returns NULL)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With