如何用C编写 把文本中的网址提取出来!

请问一下,如何用C编写 把文本中的网址提取出来!
最新回答
我阅君心

2024-11-06 13:54:20

这个事情用Java、C#用正则表达式处理非常轻松

如果用C做也可以,要做字符串匹配呀,找到src=,然后把 后面一对双引号中的东西去取出来。

都是字符串和字符指针比较基本的操作。
追问
我是用C 问题是怎么用文件操作!代码在文件里面!把里面的网址提取出来!怎么操作!
追答
给你写一小段例子
//本函数用于从指定的文件中读取URL
//参数说明: char *filename 输入文件名
//                   char buff[256];
//返回值: -1 打开文件失败 0未读取到URL 1读取到URL
int getUrlFromTxt(char * filename, char buff[256])
{
    FILE *fp=fopen(filename,"r");
    if(fp==NULL)
        return -1;
    int ret=0;
    char temp[1024];
    while(!feof(fp))
    {
        fgets(temp.1023,fp);
        //下面可以用strstr判断temp中是否有 src;
        //如果有src,则直接把URL复制到buff,然后让ret=1; 再break;
        //如果没有src,则读取下一行        
    }
    fclose(fp);
    return ret;
}

 这个里面有个小细节,特别重要,你的输入文件时ASI编码还是unicode或者是utf-8,上面的程序对ANSI编码没问题,如果是unicdoe或者utf-8编码就有问题了。

追问
能加你Q  Q说下嘛  
例如 读取到后面是<img src= 刚好读取到这里后面的链接在下一行是那不就找不到后面的链接了吗
追答
你这个东西用C++写也比用C省事多了,用python、Java或者C#就是一个正则表达式的小问题。

如果出现你说的情况,那么当遇到 src,整个字符串结束了,你就需要再读取下一行合并处理呀。
惜忆

2024-11-06 07:59:36

%s中不能有空格的。 对于这个 应该是没有什么太好的办法,能做到一句搞定。 你可以逐个读入数据,当遇到#title#时开始读,依次读到数组