首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C++中解析url并替换协议和端口号

在C++中解析url并替换协议和端口号
EN

Stack Overflow用户
提问于 2013-07-31 12:58:44
回答 4查看 929关注 0票数 0

我试图用c++编写函数来解析URL,并从url中获取端口号和协议,并将其替换为不同的端口号和协议。

为。例如:原始URL

代码语言:javascript
复制
https://abc.com:8140/abc/bcd

我需要用http和端口号6143替换https。并合并URL路径,如

代码语言:javascript
复制
http://abc.com:6143/abc/bcd

我使用操作系统作为windows 7和VisuladStudio6.0。

谢谢,

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-07-31 16:03:26

使用MFC的快速和肮脏的解决方案:

代码语言:javascript
复制
static TCHAR strhttp[] = L"http:" ;
void Replace(CString & oldurl, CString & newurl, LPTSTR newport)
{
  int colonposition ;

  colonposition = oldurl.Find(':') ;

  if (colonposition != -1)
  {
    newurl = (CString)strhttp + oldurl.Mid(colonposition + 1) ;

    colonposition = newurl.Find(':', _tcslen(strhttp) + 1) ;

    if (colonposition != -1)
    {
      int slashposition = newurl.Find('/', colonposition) ;
      newurl = newurl.Left(colonposition + 1) + newport + newurl.Mid(slashposition) ;
    }
  }
}

用法:

代码语言:javascript
复制
CString oldurl = L"https://abc.com:8140/abc/bcd";    
CString newurl ;
Replace(oldurl, newurl, L"6143") ;
// now newurl contains the transformed URL
票数 0
EN

Stack Overflow用户

发布于 2013-07-31 13:01:05

解决问题的一个方法是正则表达式

票数 0
EN

Stack Overflow用户

发布于 2013-07-31 13:08:03

解析令牌的字符串:http://msdn.microsoft.com/en-us/library/2c8d19sb(v=vs.71).aspx

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17971099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档