私はこのコードを持っています:
#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のリストを含めるとしたらどうでしょうか。