例: 网址http://www.baidu.com/xx1/xx2/fdsfsd/54fsefsd/fdsfsd/1.htm
当然这个网址可以任意长.
然后把里面的主机名(域名),也就是www.baidu.com提出来.
谢谢了,能的话拜托贴一下具体代码,
VC刚学.说理论就算动了也不会写代码..

解决方案 »

  1.   


        CString str="http://www.baidu.com/xx1/xx2/fdsfsd/54fsefsd/fdsfsd/1.htm";
        int pos1=str.Find("//");
        int pos2=str.Find("/",pos1+3);
        CString URL=str.Mid(pos1+2,pos2-pos1-2);URL里面就是www.baidu.com了
      

  2.   

    上面的代码还得补充一下,因为有时URL里还带端口,如:http://www.myabc.com:8088/abc/index.htm所以代码如下:
    CString str="http://www.baidu.com/xx1/xx2/fdsfsd/54fsefsd/fdsfsd/1.htm";
    int pos1=str.Find("//");
    int pos2=str.Find("/",pos1+3);
    CString URL=str.Mid(pos1+2,pos2-pos1-2);
    pos1 = URL.Find(":");
    if(pos1 > 0)
      URL = URL.Left(pos1);
      

  3.   

    还要考虑
    https
    ftp
    ....
      

  4.   

    UrlGetPart也是可行的。
    参考MSDN吧。
      

  5.   


    //pHttpUrl是函数参数,指传入的URL地址
    char *pSt,*pEnd;
    char sHostName[50];
    //获得主机名
    memset(sHostName,0,sizeof(sHostName));
    pSt = strstr(pHttpUrl,"://");
    if(pSt==NULL)
    {
    pEnd = strchr(pHttpUrl,'/');
    if(NULL==pEnd) strcpy(sHostName,pHttpUrl);
    else strncpy(sHostName,pHttpUrl,pEnd-pHttpUrl);
    }
    else
    {
    pEnd = strchr(pSt+strlen("://"),'/');
    if(NULL==pEnd) strcpy(sHostName,pSt+strlen("://"));
    else strncpy(sHostName,pSt+strlen("://"),pEnd-(pSt+strlen("://")));
    }我先找到://的位置,然后根据指针的移动来获取主机名
      

  6.   

    以/分隔字符串
    操作函数
        函数名: strstr
      功 能: 在串中查找指定字符串的第一次出现
      用 法: char *strstr(char *str1, char *str2);    函数名: strtok
      功 能: 分解字符串为一组标记串。s为要分解的字符串,delim为分隔符字符串
      用 法: char *strtok(char *s, char *delim);
         程序例:#include <stdio.h>
    #include <string.h>
    int main(void)
    {
      char *str1 = "http://www.baidu.com/xx1/xx2/fdsfsd/54fsefsd/fdsfsd/1.htm", *str2 = "//", *str3="/", *ptr1, *ptrl2;
      ptr1 = strstr(str1, str2); //ptr1="www.baidu.com/xx1/xx2/fdsfsd/54fsefsd/fdsfsd/1.htm"
      ptr2 = strtok(ptr1, str3); //ptr2="www.baidu.com"
      return 0;
    }