提取域名中的二级域名,该如何处理

提取域名中的二级域名
如www.baidu.com www.google.com www.360.cn提取出baidu、google、360
c语言如何实现,急!

------解决方案--------------------
掐头去尾。
char pc[1024]="www.baidu.com"
char pcTmp[1024];

strcpy(pcTMp, &pc[4]);
strcpy(strstr(pcTmp, "."), "");//点后面的都删除。
------解决方案--------------------
最好保证都是带有二级域的,否则是没法写了,比如163.com这样的一级域名是不允许的,必须是二级域www.163.com。
------解决方案--------------------

//获取主域名
CString CUtility::GetMainDomain(CString strDomain)
{

static char szInternationalDomain[] = 
//国际域名
"com net org gov edu "
;

static char szIdvDomain[] = 
//个人域名,好像只出现于第二级如:idv.la
"idv"
;

static char szChinaProvinceDomain[] = 
//中国省市域名
"ac.cn bj.cn sh.cn tj.cn cq.cn "
"he.cn sx.cn nm.cn ln.cn jl.cn "
"hl.cn js.cn zj.cn ah.cn fj.cn "
"jx.cn sd.cn ha.cn hb.cn hn.cn "
"gd.cn gx.cn hi.cn sc.cn gz.cn "
"yn.cn xz.cn sn.cn gs.cn qh.cn "
"nx.cn xj.cn tw.cn hk.cn mo.cn "
;

CString strMainDomain = strDomain;

vector<CString> vecDomainPart;
ParseStringToVec((LPCTSTR)strDomain,'.',vecDomainPart);

switch( vecDomainPart.size() )
{
case 0:
case 1:
case 2:
break;
default:

if (NULL != strstr(szInternationalDomain,(LPCTSTR)vecDomainPart[vecDomainPart.size()-1]))
{
strMainDomain = vecDomainPart[vecDomainPart.size()-2] + "." + vecDomainPart[vecDomainPart.size()-1];

else if ( NULL != strstr(szInternationalDomain,(LPCTSTR)vecDomainPart[vecDomainPart.size()-2])

------解决方案--------------------
 vecDomainPart[vecDomainPart.size()-2] == szIdvDomain )
{
strMainDomain = vecDomainPart[vecDomainPart.size()-3] + "." + vecDomainPart[vecDomainPart.size()-2] + "." + vecDomainPart[vecDomainPart.size()-1];
}
else
{
CString strTmp = vecDomainPart[vecDomainPart.size()-2] + "." + vecDomainPart[vecDomainPart.size()-1];
if (NULL != strstr(szChinaProvinceDomain,(LPCTSTR)strTmp))
{
strMainDomain = vecDomainPart[vecDomainPart.size()-3] + "." + strTmp;

else
{
strMainDomain = strTmp;
}
}
}

return strMainDomain;
}