我有這樣的代碼:域名解析
#include <stdio.h>
#include <string.h>
int main()
{
char buf[255];
char buf2[255];
char myhost[255] = "subdomain.domain.com";
char *pch;
int token_counter = 0;
memset(buf, 0, 255);
memset(buf2, 0, 255);
pch = strtok(myhost, ".");
while (pch != NULL)
{
pch = strtok(NULL, ".");
if (pch == NULL)
{
memset(buf, 0, 255);
strncpy(buf, buf2, strlen(buf2) - 1);
break;
}
token_counter++;
strcat(buf2, pch);
strcat(buf2, ".");
}
printf("Domain: %s\n", buf);
return 0;
}
這是工作的罰款,如果爲myhost被定義爲subdomain.domain.com但如果是domain.com它表明「COM」作爲最終結果。
如何正確檢測它是否是子域或域?也許如果我包含已知的tld列表?
這與正則表達式有什麼關係?你只是在一個字符上進行標記 – Mark
我以前用其他編程語言的正則表達式來做這件事,我認爲在c –
中有類似的東西,但是這不是你的問題請求 – Mark