我有这样的网址:
http://192.168.0.1:8080/servlet/rece
我想解析URL以获取值:
IP: 192.168.0.1
Port: 8080
page:  /servlet/rece
我怎么做?
bor*_*yer 25
就个人而言,我从W3C窃取HTParse.c模块  (例如,它在lynx Web浏览器中使用).然后,你可以做以下事情:
 strncpy(hostname, HTParse(url, "", PARSE_HOST), size)
使用完善且已调试的库的重要一点是,您不会陷入URL解析的典型陷阱(当主机是IP地址时,许多正则表达式失败,例如,特别是IPv6).
Jia*_*ian 11
我写了一个简单的代码使用sscanf.我想有一个解析它的基本方法.
#include <stdio.h>
int main(void)
{
    const char text[] = "http://192.168.0.2:8888/servlet/rece";
    char ip[100];
    int port = 80;
    char page[100];
    sscanf(text, "http://%99[^:]:%99d/%99[^\n]", ip, &port, page);
    printf("ip = \"%s\"\n", ip);
    printf("port = \"%d\"\n", port);
    printf("page = \"%s\"\n", page);
    return 0;
}
./urlparse
ip = "192.168.0.2"
port = "8888"
page = "servlet/rece"
dir*_*tly -3
编写自定义解析器或使用字符串替换函数之一来替换分隔符“:”,然后使用sscanf().