Thank you. (using the string 'string2' twice was my mistake.)
I changed the codes as
Code:
#include "string.h"
#include "stdio.h"
#define BAD(x) (!(x) || (*(x) == '\0'))
static char *extract_link(char *string, char url[512])
{
int length;
char *st;
char *rl;
url[0] = '\0';
rl = strstr(string, "http://");
if (BAD(rl))
goto www;
if (!BAD(rl) && strchr(rl, ' '))
{
st = strstr(rl, " ");
length = strlen(rl) - strlen(st);
strncpy(url, rl, length);
return url;
}
else
return rl;
www:
rl = strstr(string, "www.");
if (BAD(rl))
return NULL;
if (!BAD(rl) && strchr(rl, ' '))
{
st = strstr(rl, " ");
length = strlen(rl) - strlen(st);
strncpy(url, rl, length);
return url;
}
else
return rl;
}
int main()
{
char x[256], y[256];
char *string1 = "We have a http://www.google.com here and there";
char *string2 = "We have a www.google.com/blabla here whatsoever";
extract_link(string1, x);
extract_link(string2, y);
printf("%s\n%s\n", x, y);
return 0;
}
Still no avail..
Output: