You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
1.2 KiB
C

#include <string.h>
#include <stdlib.h>
char* url_to_proto(char* url) {
size_t length = strlen(url);
int sentinel = 0;
char* to_return = malloc(sizeof(char) * 10);
for (int i=0;i<length;i++) {
if (*(url + (sizeof(char) * i)) == ':') { /* If the character is ':' ...*/
sentinel = i; /* ...Then we stop scanning the string */
}
}
strncpy(to_return,url,sentinel);
return to_return;
}
char* url_to_hostname(char* url) {
/* This function relies on a hack-y assumption: that, given a string
that represents a URL (e.g. https://www.example.com/index.html), the length of the host portion
of the address is the distance between the second slash (:/'/') and the third ('/'index.html). */
size_t length = strlen(url);
char* protocol = url_to_proto(url);
char* to_return = malloc(sizeof(char) * 256);
/* This is a very roundabout way of saying that, starting from a certain point in the
URL (length of protocol string + 3), we are copying the rest of the string into another
substring. */
strncpy(to_return,url+(strlen(protocol) + 3),(length - (strlen(protocol) + 3)));
}
char* url_to_path(char* url) {
/* Assumption: The path starts from the third slash to the end of the string. */
}