urllib.parse
模块来解析URL并提取域名。
在C语言中,获取URL中的域名通常涉及到字符串处理,以下是一个详细的示例代码,展示了如何从给定的URL中提取域名:
#include <stdio.h> #include <string.h> #include <stdlib.h> // 函数声明 char extract_domain(const char url); int main() { const char url = "https://www.example.com/path/page?query=123"; char domain = extract_domain(url); if (domain) { printf("Extracted domain: %s ", domain); free(domain); // 释放动态分配的内存 } else { printf("Failed to extract domain. "); } return 0; } char extract_domain(const char url) { // 检查输入是否为空 if (!url || strlen(url) == 0) return NULL; // 查找协议分隔符("://")的位置 const char protocol_end = strstr(url, "://"); if (!protocol_end) return NULL; protocol_end += 3; // 跳过"://" // 查找域名结束的位置('/'或'?'或字符串结尾) const char domain_end = strpbrk(protocol_end, " /?#"); if (!domain_end) domain_end = url + strlen(url); // 如果找不到,则指向字符串结尾 // 计算域名长度并分配内存 size_t domain_length = domain_end protocol_end; char domain = (char)malloc(domain_length + 1); if (!domain) return NULL; // 内存分配失败 // 复制域名到新分配的内存 strncpy(domain, protocol_end, domain_length); domain[domain_length] = '