/^[^\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